скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: Тригонометричні ефемериди планет Сонячної системи

          ER1:=(Eao*(1-sqr(Eeo)))/(1+Eeo*cos((EG-Eap)*PI/180)); //формула 2

          ER:=ER1;

       Until DR<=ED;                                           //обчислення до моменту спостереження

      end;

end.

unit Mars;

interface

 Uses KonstPLN,Eagth,Math;


  Const AD5=32852;              //номер дня 9 січня 1990р. з 1 березня 1900р.

         AG5=235.0; AR5=1.538;  //початкове положення Марса 9 січня 1990р.


  Procedure Mars1(var AD,AG,AR,x,AR0,ASD,AH,AR1,AGD,RM,EG:real);

  Procedure Mars2(var AAD1,ARS,AZE,AZP,ABD,AV,AYD,AYDS,AAD0,AAD,AA,AAM,AAS,AID1,AID2,AID,AB,

                  ABM,AF, ER,AG,EG,AR,AAH,ABG:real;var  R0:integer);

  Procedure Mars3(var AT1,ATK,ATKL,ATKLM,AP,AT2,AT3,ATG,ATS,ATSL,ATSLM,ATZ,ATZL,ATZLM,AZ,

                  AA,EG,k,LB,AYD,AV,FI,AB,ATKLH,ATSLH,ATZLH:real;var n:integer);

implementation

  Procedure Mars1;

  begin

       AD:=AD5; AG:=AG5; AR:=AR5; x:=0;

       AR0:=Avo*86400/AO*N0;            //формула 4  шлях проходження за N4 дні

       ASD:=(PI*sqr(Aao)*sqrt(1-sqr(Aeo))/Atd)*N0;//формула 3  площа еліпса орбіти за N4 дні

     Repeat

       AD:=AD+N0;                                 //2 закон Кеплера

       AH:=2*ASD/AR;                              //радіус-вектор через N4 дні

       AR1:=sqrt(sqr(AH)+sqr(AR-sqrt(abs(sqr(AR0)-sqr(AH)))));//формула 5

       AGD:=arctan((1/AR1*AH)/sqrt(1-sqr(1/AR1*AH)))*180/PI;//формула 6

       AG:=AG+AGD;                                          //кут проходу за N4 дні

       While AG>=360 do

         begin

           AG:=AG-360

         end;

       AR1:=(Aao*(1-sqr(Aeo)))/(1+Aeo*cos((AG-Aap)*PI/180));//формула 2

       AR:=AR1;

       x:=x+1                                               //кількість циклів обчислення

     Until RM<=AD;                                          //обчислення до моменту спостереження

  end;//Mars1

  Procedure Mars2;

   begin

     AAD1:=arctan((ER*sin((AG-EG)*PI/180))/(AR-ER*cos((AG-EG)*PI/180)))*180/PI;//зміщення прямого

     ARS:=sin((AG-Avy)*PI/180)*sin(Aie*PI/180);                      //піднесення, формула 7

     AZE:=AR*ARS;

     AZP:=sqrt(sqr(ER*sin((EG-AG)*PI/180))+sqr(AR*sqrt(1-sqr(ARS))-ER*cos((EG-AG)*PI/180)));

     ABD:=arctan(AZE/AZP)*180/PI;                 //зміщення схилення, формула 8

     AV:=sqrt(sqr(AZE)+sqr(AZP));//лінійна відстань між Землею і Марсом, формула 9

     AYD:=2*arctan(Are/(AV*AO))*180/PI;//кутовий діаметр Марса, формула 10

     AYDS:=AYD*3600;

     AAD0:=arctan(sqrt(1-sqr((sqr(AV)+sqr(AR)-sqr(ER))/(2*AV*AR)))/((sqr(AV)+sqr(AR)-sqr(ER))/

     (2*AV*AR)))*180/PI;

     AAD:=sqrt(abs(sqr(AAD0)-sqr(ABD)));

       If AAD1<0 then

          begin

            AAD:=-AAD;

          end;

     AA:=(AG+AAD)/15;           //пряме піднесення Марса

       If AA>=24 then

          begin

            AA:=AA-24;

          end;

       If AA<0 then

          begin

            AA:=AA+24;

          end;

      AAH:=int(AA);

      AAM:=frac(AA)*60;

      AAS:=frac(AAM)*60;

     AID1:=sin((AA*15)*PI/180)*(Eri-0.00013011111*(R0-1900));//схилення точки екліптики

     AID2:=arctan((sin((180-AA*15)*PI/180)*sin((Eri-0.00013011111*(R0-1900))*PI/180))/

    (sqrt(1-sqr(sin((180-AA*15)*PI/180)*sin((Eri-0.00013011111*(R0-1900))*PI/180)))))*

    180/PI;                                          //те саме другим методом

    AID:=(AID1+AID2)/2;                              //їх середнє значення

    AB:=AID+ABD;              //Схилення Марса

    ABG:=int(AB);

    ABM:=frac(AB)*60;

    AF:=(1/2)+(cos(AAD0*PI/180)/2);         //фаза диска Марса, формула 11

    end;//Mars2

  Procedure Mars3;

    begin

      AT1:=AA-(EG/15+k);

        If AT1<0 then

         begin

           AT1:=AT1+24;

         end;

      ATK:=AT1/1.002738;       //час кульмінації Марса, формула 14

      ATKL:=ATK-LB/15+n;       //місцевий час кульмінації

        if ATKL<0 then

         begin

           ATKL:=ATKL+24;

         end;

    ATKLH:=int(ATKL); ATKLM:=frac(ATKL)*60;

    AP:=90+0.59+(AYD/2)-(arctan(Ere/(AV*AO))*180/PI);

    AT2:=(cos(AP*PI/180)-sin(FI*PI/180)*sin(AB*PI/180))/(cos(FI*PI/180)*cos(AB*PI/180));

    AT3:=arctan(sqrt(1-sqr(AT2))/AT2)*180/PI;//годинний кут сходу і заходу Марса

        if AT3<=0 then                            //формула 12

         begin

           AT3:=AT3+180;

         end;

      ATG:=AT3/15;

      ATS:=ATK-ATG;         //час сходу Марса

        if ATS<0 then

         begin

           ATS:=ATS+24;

         end;

      ATSL:=ATS-LB/15+n;    //місцевий час сходу

        if ATSL<0 then

         begin

           ATSL:=ATSL+24;

         end;

      ATSLH:=int(ATSL); ATSLM:=frac(ATSL)*60;

      ATZ:=ATK+ATG;         //час заходу Марса

        if ATZ>=24 then

         begin

           ATZ:=ATZ-24;

         end;

      ATZL:=ATZ-LB/15+n;    //місцевий час заходу

        if ATZL<0 then

         begin

           ATZL:=ATZL+24;

         end;

      ATZLH:=int(ATZL); ATZLM:=frac(ATZL)*60;

      AZ:=arctan((cos(AB*PI/180)*sin(AT3*PI/180)/sin(AP*PI/180))/sqrt(1-sqr((cos(AB*PI/180)*

      sin(AT3*PI/180))/sin(AP*PI/180))))*180/PI; //азимут Марса при сході і заході

        if AB>0 then                                   //формула 13

         begin

           AZ:=180-AZ;

         end;

      end;//Mars3

end.

unit Common;

interface

var

  ZPL,ZD,ZM,ZR,ZPL1,ZD1,ZM1,ZR1 : integer;

  ZAA,ZAB,ZAA1,ZAB1 :real;

implementation

end.

unit Unit3;

interface

uses

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

  Dialogs, ExtCtrls, StdCtrls, Buttons, Common,Math,Unit4;

type

  TForm3 = class(TForm)

    Image1: TImage;

    SpeedButton1: TSpeedButton;

    SpeedButton2: TSpeedButton;

    Button1: TButton;

    Label1: TLabel;   

    -----------------------

    Label31: TLabel;

    StaticText1: TStaticText;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure SpeedButton1Click(Sender: TObject);

    procedure SpeedButton2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

  Mas = array[1..311] of real;

var

  Form3: TForm3;

   ZA,ZB,ZP : Mas;

   ZAG,ZBG : integer;

   ZAM,ZBM,x,y,x3,y3 : real;

    x4,y4,x5,y5,x0,y0,x1,y1,x2,y2 :variant;

implementation

{$R *.dfm}

procedure TForm3.FormCreate(Sender: TObject);

 var  i:integer;

begin

SpeedButton2.visible:=false;

Label1.Visible:=false;

Label2.Visible:=false;

Label3.Visible:=false;

Label4.Visible:=false;

Label5.Visible:=false;

Label6.Visible:=false;

Image1.Canvas.Brush.Color:=clBlack;

Image1.Canvas.Brush.Style:=bsSolid;

Image1.Canvas.Rectangle(0,0,1010,255);

Image1.Canvas.pen.color:=clWhite;

Image1.Canvas.Moveto (0,0);

Image1.Canvas.LineTo (1000,0);

Image1.Canvas.LineTo (1000,250);

Image1.Canvas.LineTo (0,250);

Image1.Canvas.LineTo (0,0);

Image1.Canvas.MoveTo(0,139);

Image1.Canvas.LineTo (1000,139);

//ruscu

Image1.Canvas.MoveTo(1000,0);

Image1.Canvas.LineTo (1005,0);

Image1.Canvas.MoveTo(1000,28);

Image1.Canvas.LineTo (1005,28);

Image1.Canvas.MoveTo(1000,56);

Image1.Canvas.LineTo (1005,56);

Image1.Canvas.MoveTo(1000,83);

Image1.Canvas.LineTo (1005,83);

Image1.Canvas.MoveTo(1000,111);

Image1.Canvas.LineTo (1005,111);

Image1.Canvas.MoveTo(1000,139);

Image1.Canvas.LineTo (1005,139);

Image1.Canvas.MoveTo(1000,167);

Image1.Canvas.LineTo (1005,167);

Image1.Canvas.MoveTo(1000,194);

Image1.Canvas.LineTo (1005,194);

Image1.Canvas.MoveTo(1000,222);

Image1.Canvas.LineTo (1005,222);

Image1.Canvas.MoveTo(1000,250);

Image1.Canvas.LineTo (1005,250);

//ruscu

Image1.Canvas.MoveTo(1000,250);

Image1.Canvas.LineTo (1000,255);

Image1.Canvas.MoveTo(958,250);

Image1.Canvas.LineTo (958,255);

Image1.Canvas.MoveTo(917,250);

Image1.Canvas.LineTo (917,255);

Image1.Canvas.MoveTo(875,250);

Image1.Canvas.LineTo (875,255);

Image1.Canvas.MoveTo(833,250);

Image1.Canvas.LineTo (833,255);

Image1.Canvas.MoveTo(792,250);

Image1.Canvas.LineTo (792,255);

Image1.Canvas.MoveTo(750,250);

Image1.Canvas.LineTo (750,255);

Image1.Canvas.MoveTo(708,250);

Image1.Canvas.LineTo (708,255);

Image1.Canvas.MoveTo(667,250);

Image1.Canvas.LineTo (667,255);

Image1.Canvas.MoveTo(625,250);

Image1.Canvas.LineTo (625,255);

Image1.Canvas.MoveTo(583,250);

Image1.Canvas.LineTo (583,255);

Image1.Canvas.MoveTo(542,250);

Image1.Canvas.LineTo (542,255);

Image1.Canvas.MoveTo(500,250);

Image1.Canvas.LineTo (500,255);

Image1.Canvas.MoveTo(458,250);

Image1.Canvas.LineTo (458,255);

Image1.Canvas.MoveTo(417,250);

Image1.Canvas.LineTo (417,255);

Image1.Canvas.MoveTo(375,250);

Image1.Canvas.LineTo (375,255);

Image1.Canvas.MoveTo(333,250);

Image1.Canvas.LineTo (333,255);

Image1.Canvas.MoveTo(292,250);

Image1.Canvas.LineTo (292,255);

Image1.Canvas.MoveTo(250,250);

Image1.Canvas.LineTo (250,255);

Image1.Canvas.MoveTo(208,250);

Image1.Canvas.LineTo (208,255);

Image1.Canvas.MoveTo(167,250);

Image1.Canvas.LineTo (167,255);

Image1.Canvas.MoveTo(125,250);

Image1.Canvas.LineTo (125,255);

Image1.Canvas.MoveTo(83,250);

Image1.Canvas.LineTo (83,255);

Image1.Canvas.MoveTo(42,250);

Image1.Canvas.LineTo (42,255);

Image1.Canvas.MoveTo(0,250);

Image1.Canvas.LineTo (0,255);

//And

ZA[1]:=0.07; ZB[1]:=29.02; ZP[1]:=1;

ZA[2]:=1.09; ZB[2]:=35.34; ZP[2]:=1;

ZA[3]:=2.03; ZB[3]:=42.17; ZP[3]:=1;

ZA[4]:=0.38; ZB[4]:=30.48; ZP[4]:=0.5;

ZA[5]:=0.56; ZB[5]:=38.26; ZP[5]:=0.5;

ZA[6]:=1.37; ZB[6]:=48.34; ZP[6]:=0.5;

ZA[7]:=23.01; ZB[7]:=42.16; ZP[7]:=0.5;

ZA[8]:=23.47; ZB[8]:=46.24; ZP[8]:=0.5;

--------------------------------------------

 //Lup

 ZA[311]:=15.21; ZB[311]:=-36.13; ZP[311]:=0.5;

 //ZA[]:=; ZB[]:=; ZP[]:=;

for i:=1 to 311 do

begin

ZAG:=Trunc(ZA[i]);ZAM:=frac(ZA[i])/0.6;

 ZA[i]:=ZAG+ZAM;

ZBG:=Trunc(ZB[i]);ZBM:=frac(ZB[i])/0.6;

 ZB[i]:=ZBG+ZBM;

  if ZB[i]<=0 then

     ZB[i]:=abs(ZB[i])+50

        else  ZB[i]:=50-ZB[i];

  y:=250-(((90-ZB[i])/90)*250);

  x:=((24-ZA[i])/24)*1000;

  x0:=int(x);

  y0:=int(y);

     if ZP[i]=0.5 then

        Image1.Canvas.Pixels[x0,y0]:=clWhite

          else begin

            Image1.Canvas.Pen.Color:=clWhite;

            Image1.Canvas.Brush.Style:=bsSolid;

            Image1.Canvas.Brush.Color:=clWhite;

            x1:=int(x-ZP[i]);

            y1:=int(y-ZP[i]);

            x2:=int(x+ZP[i]);

            y2:=int(y+ZP[i]);

            Image1.Canvas.Ellipse(x1,y1,x2,y2);

          end;

     end;

end;


procedure TForm3.Button1Click(Sender: TObject);

begin

close;

end;

procedure TForm3.SpeedButton1Click(Sender: TObject);

begin

SpeedButton2.visible:=true;

Label1.Visible:=true;

Label2.Visible:=true;

Label3.Visible:=true;

Label4.Visible:=true;

Label5.Visible:=true;

Label6.Visible:=true;

case ZPL of

1: Label1.Caption:='Меркурій';

2: Label1.Caption:='Венеру';

4: Label1.Caption:='Марс';

5: Label1.Caption:='Юпітер';

6: Label1.Caption:='Сатурн';

7: Label1.Caption:='Уран';

8: Label1.Caption:='Нептун';

9: Label1.Caption:='Плутон';

end;

Label3.Caption:=IntToStr(ZD);

Label5.Caption:=IntToStr(ZR);

case ZM of

 1: Label4.Caption:='січня';

 2: Label4.Caption:='лютого';

 3: Label4.Caption:='березня';

 4: Label4.Caption:='квітня';

 5: Label4.Caption:='травня';

 6: Label4.Caption:='червня';

 7: Label4.Caption:='липня';

 8: Label4.Caption:='серпня';

 9: Label4.Caption:='вересня';

10: Label4.Caption:='жовтня';

Страницы: 1, 2, 3, 4, 5


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.