Тригонометричнi ефемериди планет Сонячноi системи

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

?а загальна iнформацiя про курсову роботу. В полi Edit1 ми вводимо пароль i нажимаСФмо кнопку тАЬСтарттАЭ(Button1) для запуску програми. У програмi процедура TForm1.Button1Click порiвнюСФ правильнiсть паролю. Якщо пароль вiрний сворюСФться Form2, в протилежному випадку видаСФться повiдомлення про невiрний пароль. Кнопка тАЬФiнiштАЭ( Button2) закриваСФ програму.

У Form2 вiдбуваСФться процес обчислення. Першим кроком необхiдно вибрати планету. Для цього у GroupBox1 зiбрано 9 RadioButton. Процедури TForm2.RadioButton1..9Click вiдповiдають за вибiр мiток планет, якi будуть в подальшому використовуватись програмою в iнших формах. Другим кроком ми вибираСФмо дату моменту спостереження у формi день.мiсяць.рiк. з трьох ComboBox, що зiбранi в GroupBox2. Третiм кроком вводимо координати мiiя спостереження широту в поле Edit1, довготу в поле Edit2, що зiбранi у GroupBox3. При натисканi кнопки тАЬHelpтАЭ запускаСФться процедура TForm2.Button4Click, яка створюСФ iнформацiйне вiкно про географiчнi координати деяких мiст Украiни i свiту. Слiд врахувати що програма працюСФ в межах вiд 8 сiчня 1990 року до 31 грудня 2099 року. Задання дат поза межами робочоi зони, не введення мiтки планети , неправильне введення номера дня мiсяця, мiсяця , географiчноi широти мiiя спостереження вважаСФться за помилку i виводить програму на автоматичний вибiр початкових даних.

При натисканнi кнопки тАЬОбчислититАЭ(Button1) запускаСФться весь процес обчислення. ЗапускаСФться процедура Eagth1 з модуля Eagth. Необхiднiсть введення модуля Eagth, де ми знаходимо координати Землi вiдносно Сонця, зумовлена тим, що ми ведемо спостереження iз Землi, внаслiдок чого ми спостерiгаСФмо нерiвномiрний рух планети по небу, то вiн рухаСФться, то раптом стаСФ i починаСФ рухатись назад. Пiсля цього запускаСФться модуль Mars(для прикладу), де виконуються три процедури.

В першiй процедурi визначають гелiоцентричну довготу i радiус вектор Марса у циклi з кроком N4 днiв з моменту 9.01.1990р. до заданого моменту спостереження. Обчислення проводяться на основi 2 закону Кеплера про рiвнiсть площ секторiв елiпса орбiти за одинакiв промiжок часу.

У другiй процедурi визначають видимi координати Марса в заданий момент
на зоряному небi в екваторiальнiй системi координат. Для цього використовую-
чи данi з модуля Eagth i процедури Mars1 розвязують задачу стереометрii: виз-
начають кутове змiщення Марса по прямому пiднесенню вiд iстинного i вiдхи-
лення схилення вiд площини еклiптики. В процесi обчислення ми можемо виз-
начити лiнiйну вiдстань вiд Землi до Марса i знаючи лiнiйний радiус Марса мо-
жемо визначити видимий кутовий дiаметр i фазу диска планети.

Третя процедура модуля Mars маСФ бiльш зрозумiле значення для простого користувача програми оскiльки визначаСФ час сходу, заходу i кульмiнацii Марса.
Кульмiнацiя це момент проходження небесного меридiана, коли планета зна-
ходиться в найвищiй точцi над горизонтом i маСФ найкращi умови для спостере-
ження. Також визначаСФться азимут точок сходу i заходу планети на горизонтi.

Результати обчислення виводяться на форму як множина Label, що зiбранi у GroupBox4. Кнопка Button3 запускаСФ процедуру створення Form3.

У Form 3 на фонi зоряного неба вiдображаСФться вибрана планета. У процедурi

procedure TForm3.FormCreate(Sender: TObject); створюСФться фон зоряного неба через елемент Image1. Вводиться Canvas.Rectangle вiдовiдного розмiру заповняСФться Canvas.Brush чорним кольором i через масив координат i зоряних величин заповняСФться зорями через побудову Image1.Canvas.Ellipse(x1,y1,x2,y2);

Через кнопку тАЬПоказатитАЭ procedure SpeedButton1Click(Sender: TObject); вiдбуваСФться перетворення зоряних координат планети на пiкселi вiдповiдно масштабу Image1 i зображаСФться сама планета вiдповiдним кольором через

Image1.Canvas.Pen.Color i Image1.Canvas.Ellipse(x4,y4,x5,y5);

Через кнопку тАЬЗакрититАЭ procedure TForm3.Button1Click(Sender: TObject); вiдбуваСФться закриття форми.

Через кнопку тАЬДетальнiшетАЭ procedure TForm3.SpeedButton2Click(Sender: TObject); створюСФться Form4.

У Form4 зображаСФться бiльш детальнiше фон зоряного неба. Завдяки збiльшенню розмiрiв Image1, ми змушенi використати полосу прокрутки. Створення форми вiдбуваСФться аналогiчно Form3. Вiдмiннiсть полягаСФ у тому, що зображення планети миготить. Це дозволяСФ наочно вiдрiзнити планету вiд зiрок. ДосягаСФться це в procedure TForm4.Timer1Timer(Sender: TObject);, де ми вводимо рахiвник i через порiвняння чи вiн парний чи непарний зображення планети проявляСФться то замальовуСФться чорним кольором пiд колiр фону.

3. Програма на мовi програмування Delphi.

unit Unit1;

interface

uses

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

Dialogs, ExtCtrls, StdCtrls,Unit2, jpeg;

type

TForm1 = class(TForm)

Panel1: TPanel;

Image1: TImage;

StaticText1: TStaticText;

StaticText2: TStaticText;

StaticText3: TStaticText;

StaticText4: TStaticText;

StaticText5: TStaticText;

GroupBox1: TGroupBox;

Button1: TButton;

Button2: TButton;

Edit1: TEdit;

StaticText6: TStaticText;

Image2: TImage;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var PAR : string;

begin

PAR:=Edit1.Text;

If PAR=orion 17 Then

begin

Form2:=TForm2.Create(Application);

Form2.ShowModal;

Form2.Fr