Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
записка моя...docx
Скачиваний:
2
Добавлен:
14.09.2019
Размер:
545.52 Кб
Скачать

Для составления математической модели проанализируем работу механизма, выявим зависимости, однозначно определяющие положение механизма на плоскости. Механизм изображен на рисунке 2.1

X

Рисунок 2.1 – Расчетная схема

Длины отрезков OB, AB, BD, DC являются известными. Координаты , , также являются известными. Угол ∟ABD равен 45°. Угол w является известным. Остальные координаты находятся следующим образом:

Расчёт координат точки B из треугольника GOB :

= +OB∙Cos(w) (2.1)

= – OB∙Sin(w) (2.2)

Расчёт угла w1

W1=pi-pi/2-(pi/2+w) (2.3)

Расчет координат точки D:

Xd=Xo-Od*cos(w1) (2.4)

Расчёт угла w2 из треугольника EAB:

w2=

(2.5)

Расчёт угла w3 из треугольника DCF:

w3:=Arccos((Xc-Xb)/DC) (2.8)

Расчет координат точки А:

Ya-Yb+Ab*sinW2 (2.9)

Yc=Yd+Bc*sin(w3)

2.2 Словесный алгоритм программы

На основании составленной математической модели можно составить алгоритм программного приложения. Составим алгоритм решения:

  1. Прорисовываем неподвижные части механизма

  2. Вводим значение w.

  3. Определяем координаты точек в зависимости от переменной w используя формулы (2.1-2.9).

  4. Стираем элементы системы, соответствующие старому значению w.

  5. Производим рисование системы, в соответствии со значением w.

2.3 Форма приложения

Одним из основных элементов приложения является форма, из которой пользователь управляет событиями, происходящими во время работы приложения. Форма приложения представлена на рисунке 2.2.

Рисунок 2.2 – Рабочая форма приложения до компеляции

Рисунок 2.3 – Рабочая форма приложения после компиляции

На форме размещены следующие компоненты:

-Image1 – компонент, для рисования механизма;

-SpinEdit1Change – компонент для задания начальных условий.

2.4 Описание основных операторов, процедур и функций

В процессе создания программного приложения необходимо использование следующих процедур, функций :

1. Функция round – возвращает целую округлённую часть цисла .

2. Функции объекта canvas, обеспечивающего рисование на элементах формы:

-moveto(X,Y) – перемещает курсор в позицию, заданную координатами X

и Y;

-lineto(X,Y) – рисует отрезок в позицию, заданную координатами X и Y;

-PolyLine(Points: array of TPoint) – рисует ломанную линию, соеденяя точки массива;

-Ellipse (x1,y1,x2,y2) – рисует эллипс вписанный в прямоугольник;

-Pen – объект для рисования линий и границ геометрических фигур;

3. Оператор присоеденения with.

Синтаксис оператора

With<Имя объекта>do<Инструкция> ;

В Инструкции, расположенной после слова do, для обращения к составной части объекта можно не указывать имя этого объекта, которое уже задано после слова with.

4. Оператор Repeat

Формат оператора Repeat:

Repeat

Тело цикла

Until<логическое выражение>

5. - procedure TForm1.FormActivate(Sender: TObject) - прорисовывает механизм в момент создания формы;

-procedure Spinedit1Change (Sender: TObject) - изменяет значение переменной w и прорисовывает схему для каждого значения переменной.

2.5 Текст программного кода

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls, Spin, Math;

type

hz = class

Xo,Yo,Xa,Ya,Xb,Yb,Xd,Yd,Xc,Yc,AB,BO,OD,DC,Xo2,Yo2,Xc2,Yc2,Xa2,Ya2: Integer;

w,w1,w2,w3: Real;

procedure data;

procedure get_data;

procedure calc;

procedure draw;

end;

type

TForm1 = class(TForm)

SpinEdit1: TSpinEdit;

Image1: TImage;

procedure FormActivate(Sender: TObject);

procedure SpinEdit1Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

hz1: hz;

implementation

{$R *.dfm}

procedure hz.data;

begin

BO:=140; AB:=90; OD:=100; DC:=160;

Xa:=80; Xc:=230; Xo:=200; Yo:=200;

end;

procedure hz.get_data;

begin

w:=form1.spinedit1.value*pi/180;

end;

procedure hz.calc;

begin

Xb:=Xo+Round(BO*Cos(w));

Yb:=Yo-Round(BO*Sin(w));

w1:=pi/2+w;

Xd:=Xo-Round(OD*Cos(w1));

Yd:=Yo+Round(OD*Sin(w1));

w2:=ArcCos((Xb-Xa)/AB);

Ya:=Yb+Round(AB*Sin(w2));

w3:=ArcCos((Xc-Xd)/DC);

Yc:=Yd+Round(DC*Sin(w3));

end;

procedure hz.draw;

begin

Form1.Image1.Picture:=nil;

with Form1.Image1.Canvas do

begin

Rectangle(Xa-10,Ya-20,Xa+10,Ya+20);

Rectangle(Xc-10,Yc-20,Xc+10,Yc+20);

Polyline([Point(Xo,Yo),Point(Xo+15,Yo+25),

Point(Xo-15,Yo+25),Point(Xo,Yo)]);

MoveTo(Xa,Ya);

LineTo(Xb,Yb);

LineTo(Xo,Yo);

LineTo(Xd,Yd);

LineTo(Xc,Yc);

MoveTo(215,240);

LineTo(215,350);

MoveTo(245,240);

LineTo(245,350);

MoveTo(65,50);

LineTo(65,250);

MoveTo(95,50);

LineTo(95,250);

Xo2:=Xo-15;

repeat

MoveTo(Xo2,Yo+25);

LineTo(Xo2-5,Yo+35);

Xo2:=Xo2+5;

until Xo2 > Xo+15;

Yc2:=240;

repeat

MoveTo(Xc+15,Yc2);

LineTo(Xc+25,Yc2-5);

MoveTo(Xc-15,Yc2);

LineTo(Xc-25,Yc2+5);

Yc2:=Yc2+5;

until Yc2 > 350;

Ya2:=50;

repeat

MoveTo(Xa+15,Ya2);

LineTo(Xa+25,Ya2-5);

MoveTo(Xa-15,Ya2);

LineTo(Xa-25,Ya2+5);

Ya2:=Ya2+5;

until Ya2 > 250;

Ellipse(Xo-4,Yo-4,Xo+4,Yo+4);

Ellipse(Xb-4,Yb-4,Xb+4,Yb+4);

Ellipse(Xa-4,Ya-4,Xa+4,Ya+4);

Ellipse(Xd-4,Yd-4,Xd+4,Yd+4);

Ellipse(Xc-4,Yc-4,Xc+4,Yc+4);

end;

end;

procedure TForm1.FormActivate(Sender: TObject);

begin

hz1:=hz.Create;

hz1.data;

hz1.get_data;

hz1.calc;

hz1.draw;

end;

procedure TForm1.SpinEdit1Change(Sender: TObject);

begin

hz1.get_data;

hz1.calc;

hz1.draw;

end;

end.

Заключение

Благодаря Delphi мне представилась возможность создать приложение, которое по заданной таблице, высчитать минимальное среднее значение столбцов второй матрицы и делит первую матрицу на получившееся минимальное значение. Таким образом Delphi дает нам возможность создать приложения решающие математические задачи, тем самым облегчает нашу работу, избавляя нас от нескончаемых вычислений и расчетов, которые занимают значительную часть нашего времени и сил, а также наиболее точно определяет значения некоторых поставленных нами задач.

Разработанное нами программное приложение «Визуальное отображения перемещений механизма» описывающее движение заданного механизма является результатом работы в визуальной среде объектно-ориентированного программирования Borland Delphi 7. Мной была решена задача о создании программы для визуального отображения перемещений механизма в соответствии с представленной схемой на рисунке 2.1.Приложение нужно было выполнить с использованием объектов и пользовательских подпрограмм. Выполнение данной задачи наглядно показало мне предусмотренное движение механизма. Таким образом, я понял , что знания полученные нами на занятиях по вычислительной технике и информатике помогут нам в нашей будущей профессии инженера-механика при проектировании сложных узлов, механизмов и деталей машин.

Список литературы:

1. В.С. Шипачев «Высшая математика».- ГУП «Издательство «Высшая школа»,

Москва, 2001.

2. Хомоненко А., Гофман В., Мещеряков Е., Никифоров В. Delphi 7. – M.:BHV, Санкт-Петербург,2003.

3. Краснов М. Графика в проектах Delphi: - СПб.: BHV – Санкт-Петербург, 2000