
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Топ:
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Интересное:
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Дисциплины:
![]() |
![]() |
5.00
из
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
Краткие теоретические сведения
Имитация движения в среде Lazarus . Движение некоторого объекта (геометрической фигуры ) в приложении на Lazarus, реализуется по следующему алгоритму:
1. Объект рисуется так, чтобы он был невидим (цветом фона)
2. Изменяются координаты объекта
3. Объект рисуется видимым цветом в новом месте
4. По истечении некоторого времени процесс повторяется
Интерфейс и функциональность приложения. Для реализации 1-3 пунктов алгоритма необходимы свойство Canvas (канва) формы или компонента Image, а также методы канвы, позволяющие установить цвет пера и кисти и прорисовку объекта.
Для выдерживания паузы между изображениями объекта на старом и новом месте служит компонент Timer (страница System палитры компонентов). Основные свойства таймера:
- Enabled (true- включен, false- выключен);
- Interval (промежуток времени между срабатываниями таймера, измеряется в миллисекундах).
Как правило, при проектировании приложения таймер следует выключить, а включить программно при наступлении какого-либо события, например, щелчка на кнопке «Начать движение».
Для движения объекта по горизонтали вправо через каждый интервал срабатывания таймера координата x увеличивается на некоторый шаг, координата y не меняется. Если движение происходит по вертикали- наоборот, меняется только y. Если надо двигать объект по некоторой сложной траектории, следует x изменять на шаг, а y вычислять как функцию от x.
Итак, для программирования движения необходимо выполнить следующие действия:
1. Разместить на форме компонент Timer. Установить его свойство Enabled в значение False. Задать интервал срабатывания таймера, например, 500 (пол-секунды). Поместить на форму кнопку «Начать движение».
2. Задать начальные установки, например, в обработчике события «прорисовка формы». Этими установками могут быть: начальные координаты объекта, шаг изменения координаты, интервал таймера и др.
3. Написать процедуру risovanie, которая реализует вышеописанный алгоритм движения объекта
4. Описать реакцию на событие «Щелчок на кнопке». Единственное, что происходит при наступлении этого события- это включение таймера.
5. Описать реакцию на событие «срабатывание таймера» (Timer1Timer). Обработчик этого события вызывает процедуру risovanie.
Вид формы при проектировании
![]() | Вид работающего приложения (окружность движется вправо)
![]() |
Пример выполнения задания
Задача. Имитировать движение планеты вокруг Солнца. Определить вид орбиты и период обращения планеты.
Запишем обезразмеренные уравнения, описывающие движение «малого» тела вокруг неподвижного «большого». В качестве характерных величин примем расстояние от Земли до Солнца ρ = 1,496∙1011 м, (так называемая, астрономическая единица), период круговой орбиты T, соответствующий этому расстоянию, скорость движения по ней . Примем
.
Соответствующие уравнения имеют вид:
Интерфейс приложения: на первой форме вводятся исходные данные
Функциональность приложения:
//процедура, реализующая один цикл движения объекта
procedure risovanie;
begin
with Form2.Canvas do begin
Pen.Color:=clRed;// красный «след»
ellipse(XS,YS,XS+5,YS+5);
//пересчет координат
X:=X+2*pi*Vx*dt;
Y:=Y+2*pi*Vy*dt;
Vx:=Vx-2*pi*X*dt/sqrt((X*X+Y*Y)*(X*X+Y*Y)*(X*X+Y*Y));
Vy:=Vy-2*pi*Y*dt/sqrt((X*X+Y*Y)*(X*X+Y*Y)*(X*X+Y*Y));
t:=t+dt;
XS:=trunc(X*Mx)+X0;
YS:=trunc(-Y*My)+Y0;
Pen.Color:=clBlack;//черная «планета»
ellipse(XS,YS,XS+5,YS+5);
if (abs(X-1)<=0.01) and (abs(Y)<=0.09) and (t>dt) then begin //при возвращении в исходную точку таймер
выключается
Form2.Timer1.Enabled:=false;
Form2.Canvas.Pen.Color:=clBlack;
// выводится значение периода Form3.Canvas.textout(Hor+5,Ver+5,'T='+floattostrf(t,ffgeneral,4,1)); end; end;
end;
//при прорисовке второй формы на ней строится система координат
procedure TForm2.FormPaint(Sender: TObject);
begin
Hor:=10;Ver:=10;
x0:=Form2.Width div 2;
y0:=Form2.Height div 2;
Mx:=Form2.Width div 3;
My:=Form2.Height div 3;
t:=0;
with Canvas do begin
Pen.Color:=clBlack;
Pen.Width:=2;
MoveTo(Hor,Y0);LineTo(Form2.Width-Hor,Y0);
MoveTo(X0,Ver);LineTo(X0,Form2.Height-Ver);
TextOut(Form2.Width-Hor,Y0+2,'X');
TextOut(X0-7,Ver,'Y');
end;
end;
//при щелчке на кнопке «Начать движение» включается таймер
procedure TForm2.Button2Click(Sender: TObject);
begin
Timer1.Enabled:=true;
end;
//при каждом срабатывании таймера вызывается процедура risovanie
procedure TForm2.Timer1Timer(Sender: TObject);
begin
risovanie;
end;
Результат : на второй форме – траектория движения «планеты» и значение периода (в земных годах)
Задание к лабораторной работе
4. В среде Lazarus имитировать движение тела согласно варианту лабораторной работы №2.
5. Исследовать зависимость характера движения от параметров модели.
6. Создать текстовый отчет по лабораторным работам №2-4, включающий:
- постановку задачи и описание модели;
- результаты тестирования программы;
- результаты, полученные в ходе выполнения заданий (в различных формах);
- качественный анализ результатов.
Лабораторная работа №5
|
|
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
© cyberpedia.su 2017-2025 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!