Мегаобучалка Главная | О нас | Обратная связь


Пример выполнения задания. Задача.Имитировать движение планеты вокруг Солнца



2016-09-17 406 Обсуждений (0)
Пример выполнения задания. Задача.Имитировать движение планеты вокруг Солнца 0.00 из 5.00 0 оценок




Задача.Имитировать движение планеты вокруг Солнца. Определить вид орбиты и период обращения планеты.

Запишем обезразмеренные уравнения, описывающие движение «малого» тела вокруг неподвижного «большого». В качестве характерных величин примем расстояние от Земли до Солнца ρ = 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

Компьютерное моделирование в экологии



2016-09-17 406 Обсуждений (0)
Пример выполнения задания. Задача.Имитировать движение планеты вокруг Солнца 0.00 из 5.00 0 оценок









Обсуждение в статье: Пример выполнения задания. Задача.Имитировать движение планеты вокруг Солнца

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (406)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)