You've already forked lazarus-ccr
systools: Add astronomy units and corresponding demos
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6145 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
83
components/systools/examples/astronomy_calculator/astcal.lpi
Normal file
83
components/systools/examples/astronomy_calculator/astcal.lpi
Normal file
@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<General>
|
||||
<SessionStorage Value="InProjectDir"/>
|
||||
<MainUnit Value="0"/>
|
||||
<Title Value="astcal"/>
|
||||
<Scaled Value="True"/>
|
||||
<ResourceType Value="res"/>
|
||||
<UseXPManifest Value="True"/>
|
||||
<XPManifest>
|
||||
<DpiAware Value="True"/>
|
||||
</XPManifest>
|
||||
<Icon Value="0"/>
|
||||
</General>
|
||||
<BuildModes Count="1">
|
||||
<Item1 Name="Default" Default="True"/>
|
||||
</BuildModes>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
</PublishOptions>
|
||||
<RunParams>
|
||||
<FormatVersion Value="2"/>
|
||||
<Modes Count="0"/>
|
||||
</RunParams>
|
||||
<RequiredPackages Count="2">
|
||||
<Item1>
|
||||
<PackageName Value="laz_systools"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<PackageName Value="LCL"/>
|
||||
</Item2>
|
||||
</RequiredPackages>
|
||||
<Units Count="2">
|
||||
<Unit0>
|
||||
<Filename Value="astcal.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="Astcal"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="astcalu.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="Form1"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="AstCalU"/>
|
||||
</Unit1>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="astcal"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<Linking>
|
||||
<Options>
|
||||
<Win32>
|
||||
<GraphicApplication Value="True"/>
|
||||
</Win32>
|
||||
</Options>
|
||||
</Linking>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<Exceptions Count="3">
|
||||
<Item1>
|
||||
<Name Value="EAbort"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<Name Value="ECodetoolError"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<Name Value="EFOpenError"/>
|
||||
</Item3>
|
||||
</Exceptions>
|
||||
</Debugging>
|
||||
</CONFIG>
|
46
components/systools/examples/astronomy_calculator/astcal.lpr
Normal file
46
components/systools/examples/astronomy_calculator/astcal.lpr
Normal file
@ -0,0 +1,46 @@
|
||||
(* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is TurboPower SysTools
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* TurboPower Software
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 1996-2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** *)
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
program Astcal;
|
||||
|
||||
uses
|
||||
Interfaces,
|
||||
Forms, lclversion,
|
||||
AstCalU in 'AstCalU.pas' {Form1};
|
||||
|
||||
{$R *.res}
|
||||
|
||||
begin
|
||||
{$IF LCL_FULLVERSION >= 1080000}
|
||||
Application.Scaled := True;
|
||||
{$ENDIF}
|
||||
Application.Initialize;
|
||||
Application.CreateForm(TForm1, Form1);
|
||||
Application.Run;
|
||||
end.
|
1068
components/systools/examples/astronomy_calculator/astcalu.lfm
Normal file
1068
components/systools/examples/astronomy_calculator/astcalu.lfm
Normal file
File diff suppressed because it is too large
Load Diff
494
components/systools/examples/astronomy_calculator/astcalu.pas
Normal file
494
components/systools/examples/astronomy_calculator/astcalu.pas
Normal file
@ -0,0 +1,494 @@
|
||||
(* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is TurboPower SysTools
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* TurboPower Software
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 1996-2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** *)
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
unit AstCalU;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
{$IFNDEF FPC}
|
||||
Windows,
|
||||
{$ENDIF}
|
||||
SysUtils, Classes, Graphics, Controls,
|
||||
Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls,
|
||||
|
||||
StConst,
|
||||
StDate,
|
||||
StDateSt,
|
||||
StAstro,
|
||||
StAstroP;
|
||||
|
||||
|
||||
type
|
||||
TForm1 = class(TForm)
|
||||
Panel1: TPanel;
|
||||
Label1: TLabel;
|
||||
Button1: TButton;
|
||||
Label2: TLabel;
|
||||
Label3: TLabel;
|
||||
MonthEF: TEdit;
|
||||
DateEF: TEdit;
|
||||
YearEF: TEdit;
|
||||
Label4: TLabel;
|
||||
Label5: TLabel;
|
||||
Label6: TLabel;
|
||||
GB1: TGroupBox;
|
||||
Label7: TLabel;
|
||||
Label8: TLabel;
|
||||
LocalTimeEF: TEdit;
|
||||
SiderealTimeEF: TEdit;
|
||||
GB2: TGroupBox;
|
||||
Label9: TLabel;
|
||||
Label10: TLabel;
|
||||
Label11: TLabel;
|
||||
Label12: TLabel;
|
||||
Label13: TLabel;
|
||||
SunRiseEF: TEdit;
|
||||
MoonRiseEF: TEdit;
|
||||
SunSetEF: TEdit;
|
||||
MoonSetEF: TEdit;
|
||||
TwiStartEF: TEdit;
|
||||
TwiEndEF: TEdit;
|
||||
GB3: TGroupBox;
|
||||
PositionsLB: TListBox;
|
||||
Header1: THeaderControl;
|
||||
GB4: TGroupBox;
|
||||
NMFirstDate: TEdit;
|
||||
FQFirstDate: TEdit;
|
||||
NMFirstTime: TEdit;
|
||||
FQFirstTime: TEdit;
|
||||
FMFirstDate: TEdit;
|
||||
LQFirstDate: TEdit;
|
||||
LQFirstTime: TEdit;
|
||||
FMFirstTime: TEdit;
|
||||
Label14: TLabel;
|
||||
Label15: TLabel;
|
||||
Label16: TLabel;
|
||||
Label17: TLabel;
|
||||
NMSecondDate: TEdit;
|
||||
NMSecondTime: TEdit;
|
||||
FQSecondDate: TEdit;
|
||||
FQSecondTime: TEdit;
|
||||
FMSecondDate: TEdit;
|
||||
FMSecondTime: TEdit;
|
||||
LQSecondTime: TEdit;
|
||||
LQSecondDate: TEdit;
|
||||
NMPrevDate: TEdit;
|
||||
FQPrevDate: TEdit;
|
||||
FMPrevDate: TEdit;
|
||||
LQPrevDate: TEdit;
|
||||
LQPrevTime: TEdit;
|
||||
FMPrevTime: TEdit;
|
||||
FQPrevTime: TEdit;
|
||||
NMPrevTime: TEdit;
|
||||
NMNextDate: TEdit;
|
||||
FQNextDate: TEdit;
|
||||
FMNextDate: TEdit;
|
||||
LQNextDate: TEdit;
|
||||
LQNextTime: TEdit;
|
||||
FMNextTime: TEdit;
|
||||
FQNextTime: TEdit;
|
||||
NMNextTime: TEdit;
|
||||
Header2: THeaderControl;
|
||||
GB5: TGroupBox;
|
||||
Label18: TLabel;
|
||||
Label19: TLabel;
|
||||
Label20: TLabel;
|
||||
Label21: TLabel;
|
||||
Label22: TLabel;
|
||||
SpringTime: TEdit;
|
||||
SummerTime: TEdit;
|
||||
SummerDate: TEdit;
|
||||
SpringDate: TEdit;
|
||||
FallTime: TEdit;
|
||||
WinterTime: TEdit;
|
||||
WinterDate: TEdit;
|
||||
FallDate: TEdit;
|
||||
EasterEF: TEdit;
|
||||
PhaseLabel: TLabel;
|
||||
Label23: TLabel;
|
||||
SunlightEF: TEdit;
|
||||
LongEF: TEdit;
|
||||
LatEF: TEdit;
|
||||
Timer1: TTimer;
|
||||
procedure Button1Click(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure Timer1Timer(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
|
||||
TheDT : TStDateTimeRec;
|
||||
RS : TStRiseSetRec;
|
||||
|
||||
D, M, Y : Integer;
|
||||
|
||||
ObsLat,
|
||||
ObsLong : Double;
|
||||
|
||||
procedure DoCalcTimes;
|
||||
procedure DoFixedCalcs;
|
||||
procedure DoCalcs(ObsLong, ObsLat : Double);
|
||||
|
||||
end;
|
||||
|
||||
var
|
||||
Form1: TForm1;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
|
||||
procedure TForm1.DoCalcTimes;
|
||||
var
|
||||
TT : TStTime;
|
||||
begin
|
||||
LocalTimeEF.Text := CurrentTimeString('hh:mm:ss', False);
|
||||
TheDT.T := CurrentTime;
|
||||
TT := Round(SiderealTime(TheDT) * 240);
|
||||
SiderealTimeEF.Text := StTimeToTimeString('hh:mm:ss', TT, False);
|
||||
end;
|
||||
|
||||
|
||||
procedure TForm1.DoFixedCalcs;
|
||||
var
|
||||
Y,
|
||||
M ,
|
||||
D : integer;
|
||||
DTR : TStDateTimeRec;
|
||||
MPR : TStMoonPosRec;
|
||||
SPR : TStPosRec;
|
||||
LR : TStLunarRecord;
|
||||
PA : TStPlanetsArray;
|
||||
|
||||
begin
|
||||
|
||||
{Calculate Positions}
|
||||
|
||||
SPR := SunPos(TheDT);
|
||||
PositionsLB.Items.Add('Sun ' + HoursMin(SPR.RA) + ' ' + DegsMin(SPR.DC));
|
||||
|
||||
MPR := MoonPos(TheDT);
|
||||
PositionsLB.Items.Add('Moon ' + HoursMin(MPR.RA) + ' ' + DegsMin(MPR.DC));
|
||||
|
||||
PlanetsPos(AstJulianDate(TheDT.D) + TheDT.T/86400, PA);
|
||||
PositionsLB.Items.Add('Mercury ' + HoursMin(PA[1].RA) + ' ' + DegsMin(PA[1].DC));
|
||||
PositionsLB.Items.Add('Venus ' + HoursMin(PA[2].RA) + ' ' + DegsMin(PA[2].DC));
|
||||
PositionsLB.Items.Add('Mars ' + HoursMin(PA[3].RA) + ' ' + DegsMin(PA[3].DC));
|
||||
PositionsLB.Items.Add('Jupiter ' + HoursMin(PA[4].RA) + ' ' + DegsMin(PA[4].DC));
|
||||
PositionsLB.Items.Add('Saturn ' + HoursMin(PA[5].RA) + ' ' + DegsMin(PA[5].DC));
|
||||
PositionsLB.Items.Add('Uranus ' + HoursMin(PA[6].RA) + ' ' + DegsMin(PA[6].DC));
|
||||
PositionsLB.Items.Add('Neptune ' + HoursMin(PA[7].RA) + ' ' + DegsMin(PA[7].DC));
|
||||
PositionsLB.Items.Add('Pluto ' + HoursMin(PA[8].RA) + ' ' + DegsMin(PA[8].DC));
|
||||
|
||||
|
||||
{Calculate lunar phases}
|
||||
|
||||
if LunarPhase(TheDT) >= 0 then
|
||||
PhaseLabel.Caption := 'Waxing'
|
||||
else
|
||||
PhaseLabel.Caption := 'Waning';
|
||||
|
||||
|
||||
LR := NewMoon(TheDT.D);
|
||||
NMFirstDate.Text := StDateToDateString('mm/dd', LR.T[0].D, False);
|
||||
NMFirstTime.Text := StTimeToTimeString('hh:mm', LR.T[0].T, False);
|
||||
if LR.T[1].D <> BadDate then
|
||||
begin
|
||||
NMSecondDate.Text := StDateToDateString('mm/dd', LR.T[1].D, False);
|
||||
NMSecondTime.Text := StTimeToTimeString('hh:mm', LR.T[1].T, False);
|
||||
end else
|
||||
begin
|
||||
NMSecondDate.Text := '';
|
||||
NMSecondTime.Text := '';
|
||||
end;
|
||||
|
||||
LR := FirstQuarter(TheDT.D);
|
||||
FQFirstDate.Text := StDateToDateString('mm/dd', LR.T[0].D, False);
|
||||
FQFirstTime.Text := StTimeToTimeString('hh:mm', LR.T[0].T, False);
|
||||
if LR.T[1].D <> BadDate then
|
||||
begin
|
||||
FQSecondDate.Text := StDateToDateString('mm/dd', LR.T[1].D, False);
|
||||
FQSecondTime.Text := StTimeToTimeString('hh:mm', LR.T[1].T, False);
|
||||
end else
|
||||
begin
|
||||
FQSecondDate.Text := '';
|
||||
FQSecondTime.Text := '';
|
||||
end;
|
||||
|
||||
LR := FullMoon(TheDT.D);
|
||||
FMFirstDate.Text := StDateToDateString('mm/dd', LR.T[0].D, False);
|
||||
FMFirstTime.Text := StTimeToTimeString('hh:mm', LR.T[0].T, False);
|
||||
if LR.T[1].D <> BadDate then
|
||||
begin
|
||||
FMSecondDate.Text := StDateToDateString('mm/dd', LR.T[1].D, False);
|
||||
FMSecondTime.Text := StTimeToTimeString('hh:mm', LR.T[1].T, False);
|
||||
end else
|
||||
begin
|
||||
FMSecondDate.Text := '';
|
||||
FMSecondTime.Text := '';
|
||||
end;
|
||||
|
||||
LR := LastQuarter(TheDT.D);
|
||||
LQFirstDate.Text := StDateToDateString('mm/dd', LR.T[0].D, False);
|
||||
LQFirstTime.Text := StTimeToTimeString('hh:mm', LR.T[0].T, False);
|
||||
if LR.T[1].D <> BadDate then
|
||||
begin
|
||||
LQSecondDate.Text := StDateToDateString('mm/dd', LR.T[1].D, False);
|
||||
LQSecondTime.Text := StTimeToTimeString('hh:mm', LR.T[1].T, False);
|
||||
end else
|
||||
begin
|
||||
LQSecondDate.Text := '';
|
||||
LQSecondTime.Text := '';
|
||||
end;
|
||||
|
||||
|
||||
{Calculate Next/Previous}
|
||||
|
||||
DTR := PrevNewMoon(TheDT.D);
|
||||
if DTR.D <> BadDate then
|
||||
begin
|
||||
NMPrevDate.Text := StDateToDateString('mm/dd', DTR.D, False);
|
||||
NMPrevTime.Text := StTimeToTimeString('hh:mm', DTR.T, False);
|
||||
end else
|
||||
begin
|
||||
NMPrevDate.Text := '';
|
||||
NMPrevTime.Text := '';
|
||||
end;
|
||||
|
||||
DTR := NextNewMoon(TheDT.D);
|
||||
if DTR.D <> BadDate then
|
||||
begin
|
||||
NMNextDate.Text := StDateToDateString('mm/dd', DTR.D, False);
|
||||
NMNextTime.Text := StTimeToTimeString('hh:mm', DTR.T, False);
|
||||
end else
|
||||
begin
|
||||
NMNextDate.Text := '';
|
||||
NMNextTime.Text := '';
|
||||
end;
|
||||
|
||||
|
||||
DTR := PrevFirstQuarter(TheDT.D);
|
||||
if DTR.D <> BadDate then
|
||||
begin
|
||||
FQPrevDate.Text := StDateToDateString('mm/dd', DTR.D, False);
|
||||
FQPrevTime.Text := StTimeToTimeString('hh:mm', DTR.T, False);
|
||||
end else
|
||||
begin
|
||||
FQPrevDate.Text := '';
|
||||
FQPrevTime.Text := '';
|
||||
end;
|
||||
|
||||
DTR := NextFirstQuarter(TheDT.D);
|
||||
if DTR.D <> BadDate then
|
||||
begin
|
||||
FQNextDate.Text := StDateToDateString('mm/dd', DTR.D, False);
|
||||
FQNextTime.Text := StTimeToTimeString('hh:mm', DTR.T, False);
|
||||
end else
|
||||
begin
|
||||
FQNextDate.Text := '';
|
||||
FQNextTime.Text := '';
|
||||
end;
|
||||
|
||||
|
||||
DTR := PrevFullMoon(TheDT.D);
|
||||
if DTR.D <> BadDate then
|
||||
begin
|
||||
FMPrevDate.Text := StDateToDateString('mm/dd', DTR.D, False);
|
||||
FMPrevTime.Text := StTimeToTimeString('hh:mm', DTR.T, False);
|
||||
end else
|
||||
begin
|
||||
FMPrevDate.Text := '';
|
||||
FMPrevTime.Text := '';
|
||||
end;
|
||||
|
||||
DTR := NextFullMoon(TheDT.D);
|
||||
if DTR.D <> BadDate then
|
||||
begin
|
||||
FMNextDate.Text := StDateToDateString('mm/dd', DTR.D, False);
|
||||
FMNextTime.Text := StTimeToTimeString('hh:mm', DTR.T, False);
|
||||
end else
|
||||
begin
|
||||
FMNextDate.Text := '';
|
||||
FMNextTime.Text := '';
|
||||
end;
|
||||
|
||||
|
||||
DTR := PrevLastQuarter(TheDT.D);
|
||||
if DTR.D <> BadDate then
|
||||
begin
|
||||
LQPrevDate.Text := StDateToDateString('mm/dd', DTR.D, False);
|
||||
LQPrevTime.Text := StTimeToTimeString('hh:mm', DTR.T, False);
|
||||
end else
|
||||
begin
|
||||
LQPrevDate.Text := '';
|
||||
LQPrevTime.Text := '';
|
||||
end;
|
||||
|
||||
DTR := NextLastQuarter(TheDT.D);
|
||||
if DTR.D <> BadDate then
|
||||
begin
|
||||
LQNextDate.Text := StDateToDateString('mm/dd', DTR.D, False);
|
||||
LQNextTime.Text := StTimeToTimeString('hh:mm', DTR.T, False);
|
||||
end else
|
||||
begin
|
||||
LQNextDate.Text := '';
|
||||
LQNextTime.Text := '';
|
||||
end;
|
||||
|
||||
|
||||
{Calculate Other Events}
|
||||
|
||||
StDateToDMY(TheDT.D, D, M, Y);
|
||||
EasterEF.Text := StDateToDateString('mm/dd', Easter(Y, 0), False);
|
||||
|
||||
|
||||
DTR := Equinox(Y, 0, True);
|
||||
SpringDate.Text := StDateToDateString('mm/dd', DTR.D, False);
|
||||
SpringTime.Text := StTimeToTimeString('hh:mm', DTR.T, False);
|
||||
|
||||
|
||||
DTR := Equinox(Y, 0, False);
|
||||
FallDate.Text := StDateToDateString('mm/dd', DTR.D, False);
|
||||
FallTime.Text := StTimeToTimeString('hh:mm', DTR.T, False);
|
||||
|
||||
|
||||
DTR := Solstice(Y, 0, True);
|
||||
SummerDate.Text := StDateToDateString('mm/dd', DTR.D, False);
|
||||
SummerTime.Text := StTimeToTimeString('hh:mm', DTR.T, False);
|
||||
|
||||
|
||||
DTR := Solstice(Y, 0, False);
|
||||
WinterDate.Text := StDateToDateString('mm/dd', DTR.D, False);
|
||||
WinterTime.Text := StTimeToTimeString('hh:mm', DTR.T, False);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
procedure TForm1.DoCalcs(ObsLong, ObsLat : Double);
|
||||
begin
|
||||
SunlightEF.Text := StTimeToTimeString('hh:mm',
|
||||
AmountOfSunlight(TheDT.D, ObsLong, ObsLat), False);
|
||||
|
||||
|
||||
RS := SunRiseSet(TheDT.D, ObsLong, ObsLat);
|
||||
SunRiseEF.Text := StTimeToTimeString('hh:mm', RS.ORise, False);
|
||||
SunSetEF.Text := StTimeToTimeString('hh:mm', RS.OSet, False);
|
||||
|
||||
RS := MoonRiseSet(TheDT.D, ObsLong, ObsLat);
|
||||
MoonRiseEF.Text := StTimeToTimeString('hh:mm', RS.ORise, False);
|
||||
MoonSetEF.Text := StTimeToTimeString('hh:mm', RS.OSet, False);
|
||||
|
||||
RS := Twilight(TheDT.D, ObsLong, ObsLat, ttAstronomical);
|
||||
TwiStartEF.Text := StTimeToTimeString('hh:mm', RS.ORise, False);
|
||||
TwiEndEF.Text := StTimeToTimeString('hh:mm', RS.OSet, False);
|
||||
end;
|
||||
|
||||
|
||||
procedure TForm1.Button1Click(Sender: TObject);
|
||||
begin
|
||||
try
|
||||
M := StrToInt(MonthEF.Text);
|
||||
if not (M in [1..12]) then
|
||||
begin
|
||||
ShowMessage('Month value out of range (1..12)');
|
||||
Exit;
|
||||
end;
|
||||
|
||||
D := StrToInt(DateEF.Text);
|
||||
if not (D in [1..31]) then
|
||||
begin
|
||||
ShowMessage('Date value out of range (1..31)');
|
||||
Exit;
|
||||
end;
|
||||
|
||||
Y := StrToInt(YearEF.Text);
|
||||
if (Y < 1800) or (Y > 2200) then
|
||||
begin
|
||||
ShowMessage('Year value out of range (1800..2200)');
|
||||
Exit;
|
||||
end;
|
||||
|
||||
TheDT.D := DMYToStDate(D, M, Y, 0);
|
||||
if TheDT.D = BadDate then
|
||||
begin
|
||||
ShowMessage('Invalid date');
|
||||
Exit;
|
||||
end;
|
||||
TheDT.T := CurrentTime;
|
||||
|
||||
ObsLong := StrToFloat(LongEF.Text);
|
||||
if (ObsLong < -180) or (ObsLong > 180) then
|
||||
begin
|
||||
ShowMessage('Longitude out of range (-180..180)');
|
||||
Exit;
|
||||
end;
|
||||
|
||||
ObsLat := StrToFloat(LatEF.Text);
|
||||
if (ObsLat < -90) or (ObsLat > 90) then
|
||||
begin
|
||||
ShowMessage('Latitude out of range (-90..90)');
|
||||
Exit;
|
||||
end;
|
||||
|
||||
PositionsLB.Clear;
|
||||
DoFixedCalcs;
|
||||
DoCalcs(ObsLong, ObsLat);
|
||||
|
||||
except
|
||||
ShowMessage('One or more entry fields has illegal data');
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TForm1.FormCreate(Sender: TObject);
|
||||
begin
|
||||
TheDT.D := CurrentDate;
|
||||
TheDT.T := CurrentTime;
|
||||
|
||||
StDateToDMY(TheDT.D, D, M, Y);
|
||||
MonthEF.Text := IntToStr(M);
|
||||
DateEF.Text := IntToStr(D);
|
||||
YearEF.Text := IntToStr(Y);
|
||||
|
||||
LongEF.Text := FloatToStr(-105.27);
|
||||
LatEF.Text := FloatToStr(38.87);
|
||||
|
||||
DoCalcTimes;
|
||||
Button1Click(Button1);
|
||||
end;
|
||||
|
||||
procedure TForm1.Timer1Timer(Sender: TObject);
|
||||
begin
|
||||
DoCalcTimes;
|
||||
end;
|
||||
|
||||
end.
|
85
components/systools/examples/eclipses/eclipse.lpi
Normal file
85
components/systools/examples/eclipses/eclipse.lpi
Normal file
@ -0,0 +1,85 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<General>
|
||||
<Flags>
|
||||
<UseDefaultCompilerOptions Value="True"/>
|
||||
</Flags>
|
||||
<SessionStorage Value="InProjectDir"/>
|
||||
<MainUnit Value="0"/>
|
||||
<Title Value="eclipse"/>
|
||||
<Scaled Value="True"/>
|
||||
<ResourceType Value="res"/>
|
||||
<UseXPManifest Value="True"/>
|
||||
<XPManifest>
|
||||
<DpiAware Value="True"/>
|
||||
</XPManifest>
|
||||
<Icon Value="0"/>
|
||||
</General>
|
||||
<BuildModes Count="1">
|
||||
<Item1 Name="Default" Default="True"/>
|
||||
</BuildModes>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
</PublishOptions>
|
||||
<RunParams>
|
||||
<FormatVersion Value="2"/>
|
||||
<Modes Count="0"/>
|
||||
</RunParams>
|
||||
<RequiredPackages Count="2">
|
||||
<Item1>
|
||||
<PackageName Value="laz_systools"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<PackageName Value="LCL"/>
|
||||
</Item2>
|
||||
</RequiredPackages>
|
||||
<Units Count="2">
|
||||
<Unit0>
|
||||
<Filename Value="eclipse.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="eclipseu.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="Form1"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="EclipseU"/>
|
||||
</Unit1>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="eclipse"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<Linking>
|
||||
<Options>
|
||||
<Win32>
|
||||
<GraphicApplication Value="True"/>
|
||||
</Win32>
|
||||
</Options>
|
||||
</Linking>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<Exceptions Count="3">
|
||||
<Item1>
|
||||
<Name Value="EAbort"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<Name Value="ECodetoolError"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<Name Value="EFOpenError"/>
|
||||
</Item3>
|
||||
</Exceptions>
|
||||
</Debugging>
|
||||
</CONFIG>
|
46
components/systools/examples/eclipses/eclipse.lpr
Normal file
46
components/systools/examples/eclipses/eclipse.lpr
Normal file
@ -0,0 +1,46 @@
|
||||
(* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is TurboPower SysTools
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* TurboPower Software
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 1996-2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** *)
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
program eclipse;
|
||||
|
||||
uses
|
||||
Interfaces,
|
||||
Forms, lclversion,
|
||||
eclipseu in 'eclipseu.pas' {Form1};
|
||||
|
||||
{$R *.res}
|
||||
|
||||
begin
|
||||
{$IF LCL_FULLVERSION >= 1080000}
|
||||
Application.Scaled := True;
|
||||
{$ENDIF}
|
||||
Application.Initialize;
|
||||
Application.CreateForm(TForm1, Form1);
|
||||
Application.Run;
|
||||
end.
|
68
components/systools/examples/eclipses/eclipseu.lfm
Normal file
68
components/systools/examples/eclipses/eclipseu.lfm
Normal file
@ -0,0 +1,68 @@
|
||||
object Form1: TForm1
|
||||
Left = 325
|
||||
Height = 283
|
||||
Top = 192
|
||||
Width = 430
|
||||
ActiveControl = Button1
|
||||
Caption = 'Eclipse Example'
|
||||
ClientHeight = 283
|
||||
ClientWidth = 430
|
||||
Color = clBtnFace
|
||||
Font.Color = clBlack
|
||||
OnCreate = FormCreate
|
||||
Position = poScreenCenter
|
||||
LCLVersion = '1.9.0.0'
|
||||
object Memo1: TMemo
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = Owner
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Control = YearEF
|
||||
Left = 4
|
||||
Height = 219
|
||||
Top = 4
|
||||
Width = 422
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
BorderSpacing.Left = 4
|
||||
BorderSpacing.Top = 4
|
||||
BorderSpacing.Right = 4
|
||||
BorderSpacing.Bottom = 4
|
||||
Font.Color = clBlack
|
||||
Font.Height = -11
|
||||
Font.Name = 'Courier New'
|
||||
ParentFont = False
|
||||
ScrollBars = ssVertical
|
||||
TabOrder = 1
|
||||
end
|
||||
object Button1: TButton
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideBottom.Control = Owner
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 112
|
||||
Height = 25
|
||||
Top = 254
|
||||
Width = 206
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Bottom = 4
|
||||
Caption = 'Generate Eclipse Information'
|
||||
OnClick = Button1Click
|
||||
TabOrder = 0
|
||||
end
|
||||
object YearEF: TSpinEdit
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideBottom.Control = Button1
|
||||
Left = 179
|
||||
Height = 23
|
||||
Top = 227
|
||||
Width = 72
|
||||
Alignment = taCenter
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Bottom = 4
|
||||
MaxValue = 32000
|
||||
MinValue = -32000
|
||||
TabOrder = 2
|
||||
Value = 2017
|
||||
end
|
||||
end
|
200
components/systools/examples/eclipses/eclipseu.pas
Normal file
200
components/systools/examples/eclipses/eclipseu.pas
Normal file
@ -0,0 +1,200 @@
|
||||
(* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is TurboPower SysTools
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* TurboPower Software
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 1996-2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** *)
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
unit EclipseU;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
{$IFNDEF FPC}
|
||||
Windows, Messages,
|
||||
{$ENDIF}
|
||||
SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Spin,
|
||||
StBase, StDate, StList, StEclpse;
|
||||
|
||||
type
|
||||
|
||||
{ TForm1 }
|
||||
|
||||
TForm1 = class(TForm)
|
||||
Memo1: TMemo;
|
||||
Button1: TButton;
|
||||
YearEF: TSpinEdit;
|
||||
procedure Button1Click(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
|
||||
procedure WriteLunarData(Eclipse : TStEclipseRecord; SL : TStrings);
|
||||
procedure WriteSolarData(Eclipse : TStEclipseRecord; SL : TStrings);
|
||||
end;
|
||||
|
||||
var
|
||||
Form1: TForm1;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
procedure TForm1.FormCreate(Sender: TObject);
|
||||
begin
|
||||
YearEF.Text := '2017';
|
||||
end;
|
||||
|
||||
{-----------------------------------------------------------------------------}
|
||||
|
||||
procedure TForm1.Button1Click(Sender: TObject);
|
||||
var
|
||||
I : integer;
|
||||
Data : TStEclipses;
|
||||
Eclipse : TStEclipseRecord;
|
||||
begin
|
||||
Memo1.Clear;
|
||||
Data := TStEclipses.Create(TStListNode);
|
||||
try
|
||||
Data.FindEclipses(StrToInt(YearEF.Text));
|
||||
for I := 0 to pred(Data.Count) do begin
|
||||
Eclipse := TStEclipseRecord(Data.Eclipses[I]^);
|
||||
if (Eclipse.Etype in [etLunarPenumbral, etLunarPartial, etLunarTotal]) then
|
||||
WriteLunarData(Eclipse, Memo1.Lines)
|
||||
else
|
||||
WriteSolarData(Eclipse, Memo1.Lines);
|
||||
end;
|
||||
finally
|
||||
Data.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
{-----------------------------------------------------------------------------}
|
||||
|
||||
procedure TForm1.WriteLunarData(Eclipse : TStEclipseRecord; SL : TStrings);
|
||||
var
|
||||
S : string[255];
|
||||
begin
|
||||
case Eclipse.EType of
|
||||
etLunarPenumbral : SL.Add('Lunar - Penumbra');
|
||||
etLunarPartial : SL.Add('Lunar - Partial');
|
||||
etLunarTotal : SL.Add('Lunar - Total');
|
||||
end;
|
||||
Str(Eclipse.Magnitude : 5 : 3, S);
|
||||
SL.Add('Mag: ' + S);
|
||||
|
||||
SL.Add('Penumbral Starts: ' + DateTimeToStr(Eclipse.LContacts.UT1));
|
||||
SL.Add('First Contact: ' + DateTimeToStr(Eclipse.LContacts.FirstContact));
|
||||
SL.Add('Second Contact: ' + DateTimeToStr(Eclipse.LContacts.SecondContact));
|
||||
SL.Add('Mid Eclipse ' + DateTimeToStr(Eclipse.LContacts.MidEclipse));
|
||||
SL.Add('Third Contact: ' + DateTimeToStr(Eclipse.LContacts.ThirdContact));
|
||||
SL.Add('Fourth Contact: ' + DateTimeToStr(Eclipse.LContacts.FourthContact));
|
||||
SL.Add('Penumbral Ends: ' + DateTimeToStr(Eclipse.LContacts.UT2));
|
||||
|
||||
SL.Add('');
|
||||
SL.Add('');
|
||||
SL.Add('');
|
||||
end;
|
||||
|
||||
{-----------------------------------------------------------------------------}
|
||||
|
||||
procedure TForm1.WriteSolarData(Eclipse : TStEclipseRecord; SL : TStrings);
|
||||
var
|
||||
I : integer;
|
||||
S,
|
||||
P : string[255];
|
||||
LL : TStLongLat;
|
||||
begin
|
||||
case Eclipse.EType of
|
||||
etSolarPartial : begin
|
||||
SL.Add('Solar - Partial');
|
||||
Str(Eclipse.Magnitude : 5 : 3, S);
|
||||
SL.Add('Mag: ' + S);
|
||||
if Eclipse.Hemisphere = htNorthern then
|
||||
SL.Add('Hemisphere: Northern')
|
||||
else
|
||||
SL.Add('Hemisphere: Southern');
|
||||
SL.Add('Mid Eclipse: ' +
|
||||
DateTimeToStr(Eclipse.LContacts.MidEclipse));
|
||||
end;
|
||||
etSolarTotal : begin
|
||||
SL.Add('Solar - Total');
|
||||
SL.Add('Mag: N/A');
|
||||
if Eclipse.Hemisphere = htNorthern then
|
||||
SL.Add('Hemisphere: Northern')
|
||||
else
|
||||
SL.Add('Hemisphere: Southern');
|
||||
SL.Add('Mid Eclipse: ' +
|
||||
DateTimeToStr(Eclipse.LContacts.MidEclipse));
|
||||
end;
|
||||
|
||||
etSolarAnnularTotal : begin
|
||||
Str(Eclipse.Magnitude : 5 : 3, S);
|
||||
SL.Add('Mag: N/A');
|
||||
if Eclipse.Hemisphere = htNorthern then
|
||||
SL.Add('Hemisphere: Northern')
|
||||
else
|
||||
SL.Add('Hemisphere: Southern');
|
||||
SL.Add('Mid Eclipse: ' +
|
||||
DateTimeToStr(Eclipse.LContacts.MidEclipse));
|
||||
end;
|
||||
|
||||
etSolarAnnular : begin
|
||||
SL.Add('Solar - Annular');
|
||||
SL.Add('Mag: N/A');
|
||||
if Eclipse.Hemisphere = htNorthern then
|
||||
SL.Add('Hemisphere: Northern')
|
||||
else
|
||||
SL.Add('Hemisphere: Southern');
|
||||
SL.Add('Mid Eclipse: ' +
|
||||
DateTimeToStr(Eclipse.LContacts.MidEclipse));
|
||||
end;
|
||||
end;
|
||||
if Assigned(Eclipse.Path) then begin
|
||||
for I := 0 to pred(Eclipse.Path.Count) do begin
|
||||
LL := TStLongLat(Eclipse.Path.Items[I].Data^);
|
||||
P := ' ' + DateTimeToStr(LL.JD) + ' ';
|
||||
|
||||
Str(LL.Longitude : 7 : 2, S);
|
||||
P := P + S + ' ';
|
||||
|
||||
Str(LL.Latitude : 6 : 2, S);
|
||||
P := P + S + ' ';
|
||||
|
||||
Str(LL.Duration : 4 : 2, S);
|
||||
P := P + S;
|
||||
SL.Add(P);
|
||||
end;
|
||||
end;
|
||||
SL.Add('');
|
||||
SL.Add('');
|
||||
SL.Add('');
|
||||
end;
|
||||
|
||||
|
||||
|
||||
end.
|
86
components/systools/examples/jupiter_moons/exjupst.lpi
Normal file
86
components/systools/examples/jupiter_moons/exjupst.lpi
Normal file
@ -0,0 +1,86 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<General>
|
||||
<Flags>
|
||||
<UseDefaultCompilerOptions Value="True"/>
|
||||
</Flags>
|
||||
<SessionStorage Value="InProjectDir"/>
|
||||
<MainUnit Value="0"/>
|
||||
<Title Value="exjupst"/>
|
||||
<Scaled Value="True"/>
|
||||
<ResourceType Value="res"/>
|
||||
<UseXPManifest Value="True"/>
|
||||
<XPManifest>
|
||||
<DpiAware Value="True"/>
|
||||
</XPManifest>
|
||||
<Icon Value="0"/>
|
||||
</General>
|
||||
<BuildModes Count="1">
|
||||
<Item1 Name="Default" Default="True"/>
|
||||
</BuildModes>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
</PublishOptions>
|
||||
<RunParams>
|
||||
<FormatVersion Value="2"/>
|
||||
<Modes Count="0"/>
|
||||
</RunParams>
|
||||
<RequiredPackages Count="2">
|
||||
<Item1>
|
||||
<PackageName Value="laz_systools"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<PackageName Value="LCL"/>
|
||||
</Item2>
|
||||
</RequiredPackages>
|
||||
<Units Count="2">
|
||||
<Unit0>
|
||||
<Filename Value="exjupst.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="ExJupSt"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="exjupstu.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="Form1"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="ExJupStU"/>
|
||||
</Unit1>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="exjupst"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<Linking>
|
||||
<Options>
|
||||
<Win32>
|
||||
<GraphicApplication Value="True"/>
|
||||
</Win32>
|
||||
</Options>
|
||||
</Linking>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<Exceptions Count="3">
|
||||
<Item1>
|
||||
<Name Value="EAbort"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<Name Value="ECodetoolError"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<Name Value="EFOpenError"/>
|
||||
</Item3>
|
||||
</Exceptions>
|
||||
</Debugging>
|
||||
</CONFIG>
|
46
components/systools/examples/jupiter_moons/exjupst.lpr
Normal file
46
components/systools/examples/jupiter_moons/exjupst.lpr
Normal file
@ -0,0 +1,46 @@
|
||||
(* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is TurboPower SysTools
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* TurboPower Software
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 1996-2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** *)
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
program ExJupSt;
|
||||
|
||||
uses
|
||||
Interfaces,
|
||||
Forms, lclversion,
|
||||
exjupstu in 'exjupstu.pas' {Form1};
|
||||
|
||||
{$R *.res}
|
||||
|
||||
begin
|
||||
{$IF LCL_FULLVERSION >= 1080000}
|
||||
Application.Scaled := True;
|
||||
{$ENDIF}
|
||||
Application.Initialize;
|
||||
Application.CreateForm(TForm1, Form1);
|
||||
Application.Run;
|
||||
end.
|
82
components/systools/examples/jupiter_moons/exjupstu.lfm
Normal file
82
components/systools/examples/jupiter_moons/exjupstu.lfm
Normal file
@ -0,0 +1,82 @@
|
||||
object Form1: TForm1
|
||||
Left = 247
|
||||
Height = 320
|
||||
Top = 125
|
||||
Width = 296
|
||||
Caption = 'Jupiter''s "Gallilean" Moon Data'
|
||||
ClientHeight = 320
|
||||
ClientWidth = 296
|
||||
Color = clBtnFace
|
||||
Font.Color = clBlack
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
OnCreate = FormCreate
|
||||
Position = poScreenCenter
|
||||
LCLVersion = '1.9.0.0'
|
||||
object Label1: TLabel
|
||||
Left = 42
|
||||
Height = 13
|
||||
Top = 258
|
||||
Width = 23
|
||||
Caption = 'Date'
|
||||
ParentColor = False
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 171
|
||||
Height = 13
|
||||
Top = 258
|
||||
Width = 15
|
||||
Caption = 'UT'
|
||||
ParentColor = False
|
||||
end
|
||||
object Button1: TButton
|
||||
Left = 108
|
||||
Height = 30
|
||||
Top = 285
|
||||
Width = 89
|
||||
Caption = 'Compute'
|
||||
Default = True
|
||||
OnClick = Button1Click
|
||||
TabOrder = 3
|
||||
end
|
||||
object Memo1: TMemo
|
||||
Left = 5
|
||||
Height = 240
|
||||
Top = 7
|
||||
Width = 290
|
||||
Font.Color = clBlack
|
||||
Font.Height = -13
|
||||
Font.Name = 'Courier New'
|
||||
Lines.Strings = (
|
||||
''
|
||||
)
|
||||
ParentFont = False
|
||||
ScrollBars = ssVertical
|
||||
TabOrder = 0
|
||||
WordWrap = False
|
||||
end
|
||||
object edDate: TEdit
|
||||
Cursor = crIBeam
|
||||
Left = 71
|
||||
Height = 21
|
||||
Hint = 'mm/dd/yyyy'
|
||||
Top = 255
|
||||
Width = 66
|
||||
MaxLength = 10
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 1
|
||||
end
|
||||
object edTime: TEdit
|
||||
Cursor = crIBeam
|
||||
Left = 191
|
||||
Height = 21
|
||||
Hint = 'hh:mm:ss'
|
||||
Top = 255
|
||||
Width = 53
|
||||
MaxLength = 8
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 2
|
||||
end
|
||||
end
|
152
components/systools/examples/jupiter_moons/exjupstu.pas
Normal file
152
components/systools/examples/jupiter_moons/exjupstu.pas
Normal file
@ -0,0 +1,152 @@
|
||||
(* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is TurboPower SysTools
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* TurboPower Software
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 1996-2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** *)
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
unit ExJupStU;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
{$IFNDEF FPC}
|
||||
Windows, Messages,
|
||||
{$ENDIF}
|
||||
SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
|
||||
|
||||
type
|
||||
TForm1 = class(TForm)
|
||||
Button1: TButton;
|
||||
Memo1: TMemo;
|
||||
edDate: TEdit;
|
||||
edTime: TEdit;
|
||||
Label1: TLabel;
|
||||
Label2: TLabel;
|
||||
procedure Button1Click(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
Form1: TForm1;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
uses
|
||||
StDate, StDateSt, StAstro, StJupSat;
|
||||
|
||||
procedure TForm1.Button1Click(Sender: TObject);
|
||||
var
|
||||
D : TDateTime;
|
||||
XS,
|
||||
YS : string[20];
|
||||
JS : TStJupSats;
|
||||
begin
|
||||
Memo1.Clear;
|
||||
|
||||
D := StrToDate(edDate.Text);
|
||||
if edTime.Text > '' then
|
||||
D := D + StrToTime(edTime.Text);
|
||||
|
||||
JS := GetJupSats(D, False, False);
|
||||
|
||||
Memo1.Lines.Add('Low Precision');
|
||||
Memo1.Lines.Add('--------------------------------');
|
||||
Str(JS.Io.X:6:2, XS);
|
||||
Str(JS.Io.Y:6:2, YS);
|
||||
Memo1.Lines.Add('Io ' + XS + ' ' + YS);
|
||||
|
||||
Str(JS.Europa.X:6:2, XS);
|
||||
Str(JS.Europa.Y:6:2, YS);
|
||||
Memo1.Lines.Add('Europa ' + XS + ' ' + YS);
|
||||
|
||||
Str(JS.Ganymede.X:6:2, XS);
|
||||
Str(JS.Ganymede.Y:6:2, YS);
|
||||
Memo1.Lines.Add('Ganymede ' + XS + ' ' + YS);
|
||||
|
||||
Str(JS.Callisto.X:6:2, XS);
|
||||
Str(JS.Callisto.Y:6:2, YS);
|
||||
Memo1.Lines.Add('Callisto ' + XS + ' ' + YS);
|
||||
|
||||
|
||||
Memo1.Lines.Add(' ');
|
||||
|
||||
JS := GetJupSats(D, True, False);
|
||||
Memo1.Lines.Add('High Precision - Non Shadow');
|
||||
Memo1.Lines.Add('--------------------------------');
|
||||
|
||||
Str(JS.Io.X:8:4, XS);
|
||||
Str(JS.Io.Y:8:4, YS);
|
||||
Memo1.Lines.Add('Io ' + XS + ' ' + YS);
|
||||
|
||||
Str(JS.Europa.X:8:4, XS);
|
||||
Str(JS.Europa.Y:8:4, YS);
|
||||
Memo1.Lines.Add('Europa ' + XS + ' ' + YS);
|
||||
|
||||
Str(JS.Ganymede.X:8:4, XS);
|
||||
Str(JS.Ganymede.Y:8:4, YS);
|
||||
Memo1.Lines.Add('Ganymede ' + XS + ' ' + YS);
|
||||
|
||||
Str(JS.Callisto.X:8:4, XS);
|
||||
Str(JS.Callisto.Y:8:4, YS);
|
||||
Memo1.Lines.Add('Callisto ' + XS + ' ' + YS);
|
||||
|
||||
|
||||
Memo1.Lines.Add(' ');
|
||||
|
||||
JS := GetJupSats(D, True, True);
|
||||
Memo1.Lines.Add('High Precision - Shadow');
|
||||
Memo1.Lines.Add('--------------------------------');
|
||||
|
||||
Str(JS.Io.X:8:4, XS);
|
||||
Str(JS.Io.Y:8:4, YS);
|
||||
Memo1.Lines.Add('Io ' + XS + ' ' + YS);
|
||||
|
||||
Str(JS.Europa.X:8:4, XS);
|
||||
Str(JS.Europa.Y:8:4, YS);
|
||||
Memo1.Lines.Add('Europa ' + XS + ' ' + YS);
|
||||
|
||||
Str(JS.Ganymede.X:8:4, XS);
|
||||
Str(JS.Ganymede.Y:8:4, YS);
|
||||
Memo1.Lines.Add('Ganymede ' + XS + ' ' + YS);
|
||||
|
||||
Str(JS.Callisto.X:8:4, XS);
|
||||
Str(JS.Callisto.Y:8:4, YS);
|
||||
Memo1.Lines.Add('Callisto ' + XS + ' ' + YS);
|
||||
end;
|
||||
|
||||
procedure TForm1.FormCreate(Sender: TObject);
|
||||
begin
|
||||
edDate.Text := DateToStr(Date);
|
||||
edTime.Text := '';
|
||||
end;
|
||||
|
||||
end.
|
@ -16,7 +16,7 @@
|
||||
<Description Value="Lazarus port of TurboPower SysTools (Delphi version at https://sourceforge.net/projects/tpsystools/) - runtime package"/>
|
||||
<License Value="MPL 1.1"/>
|
||||
<Version Major="4" Release="4"/>
|
||||
<Files Count="27">
|
||||
<Files Count="40">
|
||||
<Item1>
|
||||
<Filename Value="source\run\stbarc.pas"/>
|
||||
<UnitName Value="StBarC"/>
|
||||
@ -125,6 +125,58 @@
|
||||
<Filename Value="source\run\ststrs.pas"/>
|
||||
<UnitName Value="StStrS"/>
|
||||
</Item27>
|
||||
<Item28>
|
||||
<Filename Value="source\run\stastro.pas"/>
|
||||
<UnitName Value="StAstro"/>
|
||||
</Item28>
|
||||
<Item29>
|
||||
<Filename Value="source\run\steclpse.pas"/>
|
||||
<UnitName Value="StEclpse"/>
|
||||
</Item29>
|
||||
<Item30>
|
||||
<Filename Value="source\run\stlist.pas"/>
|
||||
<UnitName Value="StList"/>
|
||||
</Item30>
|
||||
<Item31>
|
||||
<Filename Value="source\run\stmerc.pas"/>
|
||||
<UnitName Value="StMerc"/>
|
||||
</Item31>
|
||||
<Item32>
|
||||
<Filename Value="source\run\stastrop.pas"/>
|
||||
<UnitName Value="StAstroP"/>
|
||||
</Item32>
|
||||
<Item33>
|
||||
<Filename Value="source\run\stvenus.pas"/>
|
||||
<UnitName Value="StVenus"/>
|
||||
</Item33>
|
||||
<Item34>
|
||||
<Filename Value="source\run\stmars.pas"/>
|
||||
<UnitName Value="StMars"/>
|
||||
</Item34>
|
||||
<Item35>
|
||||
<Filename Value="source\run\stjup.pas"/>
|
||||
<UnitName Value="StJup"/>
|
||||
</Item35>
|
||||
<Item36>
|
||||
<Filename Value="source\run\stsaturn.pas"/>
|
||||
<UnitName Value="StSaturn"/>
|
||||
</Item36>
|
||||
<Item37>
|
||||
<Filename Value="source\run\sturanus.pas"/>
|
||||
<UnitName Value="StUranus"/>
|
||||
</Item37>
|
||||
<Item38>
|
||||
<Filename Value="source\run\stneptun.pas"/>
|
||||
<UnitName Value="StNeptun"/>
|
||||
</Item38>
|
||||
<Item39>
|
||||
<Filename Value="source\run\stpluto.pas"/>
|
||||
<UnitName Value="StPluto"/>
|
||||
</Item39>
|
||||
<Item40>
|
||||
<Filename Value="source\run\stjupsat.pas"/>
|
||||
<UnitName Value="StJupsat"/>
|
||||
</Item40>
|
||||
</Files>
|
||||
<RequiredPkgs Count="2">
|
||||
<Item1>
|
||||
|
@ -10,7 +10,9 @@ interface
|
||||
uses
|
||||
StBarC, StBase, StConst, StBarPN, StStrL, St2DBarC, StDate, StUtils, StCRC,
|
||||
StHASH, StToHTML, StStrms, StDict, StIniStm, StDecMth, StExpr, StMath,
|
||||
StFIN, StDateSt, StMoney, StRandom, StStat, StLArr, StBCD, StRegEx, StStrS;
|
||||
StFIN, StDateSt, StMoney, StRandom, StStat, StLArr, StBCD, StRegEx, StStrS,
|
||||
StAstro, StEclpse, StList, StMerc, StAstroP, StVenus, StMars, StJup,
|
||||
StSaturn, StUranus, StNeptun, StPluto, StJupsat;
|
||||
|
||||
implementation
|
||||
|
||||
|
@ -85,12 +85,12 @@ uses
|
||||
(*
|
||||
StVInfo,
|
||||
StWMDCpy,
|
||||
*)
|
||||
|
||||
{forces these units to be compiled when components are installed}
|
||||
{vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv}
|
||||
StAstro,
|
||||
StAstroP,
|
||||
*)
|
||||
StBCD,
|
||||
(*
|
||||
StBits,
|
||||
@ -103,36 +103,38 @@ uses
|
||||
(*
|
||||
StDict,
|
||||
StDQue,
|
||||
StEclpse,
|
||||
*)
|
||||
StEclpse,
|
||||
StExpr,
|
||||
StFIN,
|
||||
(*
|
||||
StFirst,
|
||||
*)
|
||||
StHASH,
|
||||
(*
|
||||
StJup,
|
||||
StJupsat,
|
||||
*)
|
||||
StLArr,
|
||||
(*
|
||||
StList,
|
||||
StMars,
|
||||
*)
|
||||
StMath,
|
||||
(*
|
||||
StMerc,
|
||||
(*
|
||||
StMime,
|
||||
*)
|
||||
StNeptun,
|
||||
(*
|
||||
StNet,
|
||||
StNetApi,
|
||||
StNVCont,
|
||||
StOStr,
|
||||
*)
|
||||
StPluto,
|
||||
(*
|
||||
StPQueue,
|
||||
StRegIni,
|
||||
*)
|
||||
StSaturn,
|
||||
(*
|
||||
StSort,
|
||||
*)
|
||||
StStat,
|
||||
@ -144,14 +146,14 @@ uses
|
||||
StStrZ,
|
||||
StText,
|
||||
StTree,
|
||||
StUranus,
|
||||
*)
|
||||
StUranus,
|
||||
StUtils,
|
||||
(*
|
||||
StVArr,
|
||||
*)
|
||||
StVenus,
|
||||
{ new units in ver 4: }
|
||||
*)
|
||||
StIniStm,
|
||||
(*
|
||||
StMerge,
|
||||
|
1799
components/systools/source/run/stastro.pas
Normal file
1799
components/systools/source/run/stastro.pas
Normal file
File diff suppressed because it is too large
Load Diff
499
components/systools/source/run/stastrop.pas
Normal file
499
components/systools/source/run/stastrop.pas
Normal file
@ -0,0 +1,499 @@
|
||||
// Upgraded to Delphi 2009: Sebastian Zierer
|
||||
|
||||
(* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is TurboPower SysTools
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* TurboPower Software
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 1996-2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** *)
|
||||
|
||||
{*********************************************************}
|
||||
{* SysTools: StAstroP.pas 4.04 *}
|
||||
{*********************************************************}
|
||||
{* SysTools: Astronomical Routines (general Planetary) *}
|
||||
{*********************************************************}
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
//{$I StDefine.inc}
|
||||
|
||||
{ ************************************************************** }
|
||||
{ Sources: }
|
||||
{ 1. Astronomical Algorithms, Jean Meeus, Willmann-Bell, 1991. }
|
||||
{ }
|
||||
{ 2. Planetary and Lunar Coordinates (1984-2000), U.S. Govt, }
|
||||
{ 1983. }
|
||||
{ }
|
||||
{ 3. Supplement to the American Ephemeris and Nautical Almanac,}
|
||||
{ U.S. Govt, 1964. }
|
||||
{ }
|
||||
{ 4. MPO96-MPO98 source files, Brian D. Warner, 1995-2000. }
|
||||
{ }
|
||||
{ ************************************************************** }
|
||||
|
||||
unit StAstroP;
|
||||
|
||||
interface
|
||||
|
||||
const
|
||||
StdDate = 2451545.0; {Ast. Julian Date for J2000 Epoch}
|
||||
OB2000 = 0.409092804; {J2000 obliquity of the ecliptic (radians)}
|
||||
|
||||
type
|
||||
TStEclipticalCord = packed record
|
||||
L0,
|
||||
B0,
|
||||
R0 : Double;
|
||||
end;
|
||||
|
||||
TStRectangularCord = packed record
|
||||
X,
|
||||
Y,
|
||||
Z : Double;
|
||||
end;
|
||||
|
||||
TStPlanetsRec = packed record
|
||||
RA,
|
||||
DC,
|
||||
Elong : Double;
|
||||
end;
|
||||
TStPlanetsArray = array[1..8] of TStPlanetsRec;
|
||||
|
||||
|
||||
procedure PlanetsPos(JD : Double; var PA : TStPlanetsArray);
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
Windows,
|
||||
StDate, StMerc, StVenus, StMars, StJup, StSaturn, StUranus, StNeptun,
|
||||
StPluto, StMath;
|
||||
|
||||
var
|
||||
PlanEC : TStEclipticalCord;
|
||||
PlanRC,
|
||||
SunRC : TStRectangularCord;
|
||||
SunEQ : TStPlanetsRec;
|
||||
|
||||
|
||||
{--------------------------------------------------------------------------}
|
||||
|
||||
function RealAngle(Value2, Value1, Start : Double) : Double;
|
||||
begin
|
||||
Result := Start;
|
||||
|
||||
if (Value1 = 0) then begin
|
||||
if Value2 > 0 then
|
||||
Result := Pi / 2.0
|
||||
else
|
||||
Result := 3.0 * Pi / 2.0;
|
||||
end else begin
|
||||
if (Value2 > 0.0) then begin
|
||||
if (Value1 < 0.0) then
|
||||
Result := Start + Pi
|
||||
else
|
||||
Result := Start;
|
||||
end else begin
|
||||
if (Value2 = 0) then begin
|
||||
if Value1 > 0 then
|
||||
Result := 0
|
||||
else
|
||||
Result := Pi;
|
||||
end else begin
|
||||
if (Value2 < 0) then begin
|
||||
if (Value1 < 0) then
|
||||
Result := Start + Pi
|
||||
else
|
||||
Result := Start + (2.0 * Pi)
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
{--------------------------------------------------------------------------}
|
||||
|
||||
function SunOfDate(JD : Double) : TStRectangularCord;
|
||||
{-compute J2000 XYZ coordinates of the Sun}
|
||||
var
|
||||
T0,
|
||||
A,
|
||||
L,
|
||||
B,
|
||||
RV,
|
||||
TX,
|
||||
TY,
|
||||
TZ : Double;
|
||||
|
||||
begin
|
||||
T0 := (JD - StdDate) / 365250;
|
||||
|
||||
{solar longitude}
|
||||
L := 175347046
|
||||
+ 3341656 * cos(4.6692568 + 6283.07585*T0)
|
||||
+ 34894 * cos(4.6261000 + 12566.1517*T0)
|
||||
+ 3497 * cos(2.7441000 + 5753.3849*T0)
|
||||
+ 3418 * cos(2.8289000 + 3.5231*T0)
|
||||
+ 3136 * cos(3.6277000 + 77713.7715*T0)
|
||||
+ 2676 * cos(4.4181000 + 7860.4194*T0)
|
||||
+ 2343 * cos(6.1352000 + 3930.2097*T0)
|
||||
+ 1324 * cos(0.7425000 + 11506.7698*T0)
|
||||
+ 1273 * cos(2.0371000 + 529.6910*T0)
|
||||
+ 1199 * cos(1.1096000 + 1577.3435*T0)
|
||||
+ 990 * cos(5.2330000 + 5884.9270*T0)
|
||||
+ 902 * cos(2.0450000 + 26.1490*T0)
|
||||
+ 857 * cos(3.5080000 + 398.149*T0)
|
||||
+ 780 * cos(1.1790000 + 5223.694*T0)
|
||||
+ 753 * cos(2.5330000 + 5507.553*T0)
|
||||
+ 505 * cos(4.5830000 + 18849.228*T0)
|
||||
+ 492 * cos(4.2050000 + 775.523*T0)
|
||||
+ 357 * cos(2.9200000 + 0.067*T0)
|
||||
+ 317 * cos(5.8490000 + 11790.626*T0)
|
||||
+ 284 * cos(1.8990000 + 796.298*T0)
|
||||
+ 271 * cos(0.3150000 + 10977.079*T0)
|
||||
+ 243 * cos(0.3450000 + 5486.778*T0)
|
||||
+ 206 * cos(4.8060000 + 2544.314*T0)
|
||||
+ 205 * cos(1.8690000 + 5573.143*T0)
|
||||
+ 202 * cos(2.4580000 + 6069.777*T0)
|
||||
+ 156 * cos(0.8330000 + 213.299*T0)
|
||||
+ 132 * cos(3.4110000 + 2942.463*T0)
|
||||
+ 126 * cos(1.0830000 + 20.775*T0)
|
||||
+ 115 * cos(0.6450000 + 0.980*T0)
|
||||
+ 103 * cos(0.6360000 + 4694.003*T0)
|
||||
+ 102 * cos(0.9760000 + 15720.839*T0)
|
||||
+ 102 * cos(4.2670000 + 7.114*T0)
|
||||
+ 99 * cos(6.2100000 + 2146.170*T0)
|
||||
+ 98 * cos(0.6800000 + 155.420*T0)
|
||||
+ 86 * cos(5.9800000 +161000.690*T0)
|
||||
+ 85 * cos(1.3000000 + 6275.960*T0)
|
||||
+ 85 * cos(3.6700000 + 71430.700*T0)
|
||||
+ 80 * cos(1.8100000 + 17260.150*T0);
|
||||
|
||||
A := 628307584999.0
|
||||
+ 206059 * cos(2.678235 + 6283.07585*T0)
|
||||
+ 4303 * cos(2.635100 + 12566.1517*T0)
|
||||
+ 425 * cos(1.590000 + 3.523*T0)
|
||||
+ 119 * cos(5.796000 + 26.298*T0)
|
||||
+ 109 * cos(2.966000 + 1577.344*T0)
|
||||
+ 93 * cos(2.590000 + 18849.23*T0)
|
||||
+ 72 * cos(1.140000 + 529.69*T0)
|
||||
+ 68 * cos(1.870000 + 398.15*T0)
|
||||
+ 67 * cos(4.410000 + 5507.55*T0)
|
||||
+ 59 * cos(2.890000 + 5223.69*T0)
|
||||
+ 56 * cos(2.170000 + 155.42*T0)
|
||||
+ 45 * cos(0.400000 + 796.30*T0)
|
||||
+ 36 * cos(0.470000 + 775.52*T0)
|
||||
+ 29 * cos(2.650000 + 7.11*T0)
|
||||
+ 21 * cos(5.340000 + 0.98*T0)
|
||||
+ 19 * cos(1.850000 + 5486.78*T0)
|
||||
+ 19 * cos(4.970000 + 213.30*T0)
|
||||
+ 17 * cos(2.990000 + 6275.96*T0)
|
||||
+ 16 * cos(0.030000 + 2544.31*T0);
|
||||
L := L + (A * T0);
|
||||
|
||||
A := 8722 * cos(1.0725 + 6283.0758*T0)
|
||||
+ 991 * cos(3.1416)
|
||||
+ 295 * cos(0.437 + 12566.1520*T0)
|
||||
+ 27 * cos(0.050 + 3.52*T0)
|
||||
+ 16 * cos(5.190 + 26.30*T0)
|
||||
+ 16 * cos(3.69 + 155.42*T0)
|
||||
+ 9 * cos(0.30 + 18849.23*T0)
|
||||
+ 9 * cos(2.06 + 77713.77*T0);
|
||||
L := L + (A * sqr(T0));
|
||||
|
||||
A := 289 * cos(5.842 + 6283.076*T0)
|
||||
+ 21 * cos(6.05 + 12566.15*T0)
|
||||
+ 3 * cos(5.20 + 155.42*T0)
|
||||
+ 3 * cos(3.14);
|
||||
L := L + (A * sqr(T0) * T0);
|
||||
L := L / 1.0E+8;
|
||||
|
||||
|
||||
{solar latitude}
|
||||
B := 280 * cos(3.199 + 84334.662*T0)
|
||||
+ 102 * cos(5.422 + 5507.553*T0)
|
||||
+ 80 * cos(3.88 + 5223.69*T0)
|
||||
+ 44 * cos(3.70 + 2352.87*T0)
|
||||
+ 32 * cos(4.00 + 1577.34*T0);
|
||||
B := B / 1.0E+8;
|
||||
|
||||
A := 227778 * cos(3.413766 + 6283.07585*T0)
|
||||
+ 3806 * cos(3.3706 + 12566.1517*T0)
|
||||
+ 3620
|
||||
+ 72 * cos(3.33 + 18849.23*T0)
|
||||
+ 8 * cos(3.89 + 5507.55*T0)
|
||||
+ 8 * cos(1.79 + 5223.69*T0)
|
||||
+ 6 * cos(5.20 + 2352.87*T0);
|
||||
B := B + (A * T0 / 1.0E+8);
|
||||
|
||||
A := 9721 * cos(5.1519 + 6283.07585*T0)
|
||||
+ 233 * cos(3.1416)
|
||||
+ 134 * cos(0.644 + 12566.152*T0)
|
||||
+ 7 * cos(1.07 + 18849.23*T0);
|
||||
B := B + (A * sqr(T0) / 1.0E+8);
|
||||
|
||||
A := 276 * cos(0.595 + 6283.076*T0)
|
||||
+ 17 * cos(3.14)
|
||||
+ 4 * cos(0.12 + 12566.15*T0);
|
||||
B := B + (A * sqr(T0) * T0 / 1.0E+8);
|
||||
|
||||
|
||||
{solar radius vector (astronomical units)}
|
||||
RV := 100013989
|
||||
+ 1670700 * cos(3.0984635 + 6283.07585*T0)
|
||||
+ 13956 * cos(3.05525 + 12566.15170*T0)
|
||||
+ 3084 * cos(5.1985 + 77713.7715*T0)
|
||||
+ 1628 * cos(1.1739 + 5753.3849*T0)
|
||||
+ 1576 * cos(2.8649 + 7860.4194*T0)
|
||||
+ 925 * cos(5.453 + 11506.770*T0)
|
||||
+ 542 * cos(4.564 + 3930.210*T0)
|
||||
+ 472 * cos(3.661 + 5884.927*T0)
|
||||
+ 346 * cos(0.964 + 5507.553*T0)
|
||||
+ 329 * cos(5.900 + 5223.694*T0)
|
||||
+ 307 * cos(0.299 + 5573.143*T0)
|
||||
+ 243 * cos(4.273 + 11790.629*T0)
|
||||
+ 212 * cos(5.847 + 1577.344*T0)
|
||||
+ 186 * cos(5.022 + 10977.079*T0)
|
||||
+ 175 * cos(3.012 + 18849.228*T0)
|
||||
+ 110 * cos(5.055 + 5486.778*T0)
|
||||
+ 98 * cos(0.89 + 6069.78*T0)
|
||||
+ 86 * cos(5.69 + 15720.84*T0)
|
||||
+ 86 * cos(1.27 +161000.69*T0)
|
||||
+ 65 * cos(0.27 + 17260.15*T0)
|
||||
+ 63 * cos(0.92 + 529.69*T0)
|
||||
+ 57 * cos(2.01 + 83996.85*T0)
|
||||
+ 56 * cos(5.24 + 71430.70*T0)
|
||||
+ 49 * cos(3.25 + 2544.31*T0)
|
||||
+ 47 * cos(2.58 + 775.52*T0)
|
||||
+ 45 * cos(5.54 + 9437.76*T0)
|
||||
+ 43 * cos(6.01 + 6275.96*T0)
|
||||
+ 39 * cos(5.36 + 4694.00*T0)
|
||||
+ 38 * cos(2.39 + 8827.39*T0)
|
||||
+ 37 * cos(0.83 + 19651.05*T0)
|
||||
+ 37 * cos(4.90 + 12139.55*T0)
|
||||
+ 36 * cos(1.67 + 12036.46*T0)
|
||||
+ 35 * cos(1.84 + 2942.46*T0)
|
||||
+ 33 * cos(0.24 + 7084.90*T0)
|
||||
+ 32 * cos(0.18 + 5088.63*T0)
|
||||
+ 32 * cos(1.78 + 398.15*T0)
|
||||
+ 28 * cos(1.21 + 6286.60*T0)
|
||||
+ 28 * cos(1.90 + 6279.55*T0)
|
||||
+ 26 * cos(4.59 + 10447.39*T0);
|
||||
RV := RV / 1.0E+8;
|
||||
|
||||
A := 103019 * cos(1.107490 + 6283.075850*T0)
|
||||
+ 1721 * cos(1.0644 + 12566.1517*T0)
|
||||
+ 702 * cos(3.142)
|
||||
+ 32 * cos(1.02 + 18849.23*T0)
|
||||
+ 31 * cos(2.84 + 5507.55*T0)
|
||||
+ 25 * cos(1.32 + 5223.69*T0)
|
||||
+ 18 * cos(1.42 + 1577.34*T0)
|
||||
+ 10 * cos(5.91 + 10977.08*T0)
|
||||
+ 9 * cos(1.42 + 6275.96*T0)
|
||||
+ 9 * cos(0.27 + 5486.78*T0);
|
||||
RV := RV + (A * T0 / 1.0E+8);
|
||||
|
||||
A := 4359 * cos(5.7846 + 6283.0758*T0)
|
||||
+ 124 * cos(5.579 + 12566.152*T0)
|
||||
+ 12 * cos(3.14)
|
||||
+ 9 * cos(3.63 + 77713.77*T0)
|
||||
+ 6 * cos(1.87 + 5573.14*T0)
|
||||
+ 3 * cos(5.47 + 18849.23*T0);
|
||||
RV := RV + (A * sqr(T0) / 1.0E+8);
|
||||
|
||||
L := (L + PI);
|
||||
L := Frac(L / 2.0 / PI) * 2.0 * Pi;
|
||||
if L < 0 then
|
||||
L := L + (2.0*PI);
|
||||
B := -B;
|
||||
|
||||
TX := RV * cos(B) * cos(L);
|
||||
TY := RV * cos(B) * sin(L);
|
||||
TZ := RV * sin(B);
|
||||
|
||||
Result.X := TX + 4.40360E-7 * TY - 1.90919E-7 * TZ;
|
||||
Result.Y := -4.79966E-7 * TX + 0.917482137087 * TY - 0.397776982902 * TZ;
|
||||
Result.Z := 0.397776982902 * TY + 0.917482137087 * TZ;
|
||||
end;
|
||||
|
||||
{--------------------------------------------------------------------------}
|
||||
|
||||
function EclipticToRectangular(Longitude, Latitude,
|
||||
RadiusVector : Double) : TStRectangularCord;
|
||||
var
|
||||
var1,
|
||||
var2,
|
||||
var3 : Double;
|
||||
begin
|
||||
var1 := RadiusVector * cos(Longitude) * cos(Latitude);
|
||||
var2 := RadiusVector * sin(Longitude) * cos(Latitude);
|
||||
var3 := RadiusVector * sin(Latitude);
|
||||
|
||||
Result.X := var1;
|
||||
Result.Y := var2 * cos(OB2000) - var3 * sin(OB2000);
|
||||
Result.Z := var2 * sin(OB2000) + var3 * cos(OB2000);
|
||||
end;
|
||||
|
||||
{--------------------------------------------------------------------------}
|
||||
|
||||
function RADec(Planet, Sun : TStRectangularCord;
|
||||
ComputeElong : Boolean) : TStPlanetsRec;
|
||||
var
|
||||
var1,
|
||||
var2,
|
||||
var3,
|
||||
var4,
|
||||
var5 : Double;
|
||||
begin
|
||||
FillChar(Result, SizeOf(TStPlanetsRec), #0);
|
||||
|
||||
var1 := Sun.X + Planet.X;
|
||||
var2 := Sun.Y + Planet.Y;
|
||||
var3 := Sun.Z + Planet.Z;
|
||||
|
||||
var4 := arctan(var2/var1);
|
||||
var4 := RealAngle(var2, var1, var4) * radcor;
|
||||
|
||||
var5 := sqrt(sqr(var1) + sqr(var2) + sqr(var3));
|
||||
var3 := StInvsin(var3/var5) * radcor;
|
||||
|
||||
Result.RA := var4;
|
||||
Result.DC := var3;
|
||||
|
||||
var4 := Result.RA / radcor;
|
||||
var3 := Result.DC / radcor;
|
||||
|
||||
if (ComputeElong) then begin
|
||||
var1 := sin(SunEQ.DC/radcor) * sin(var3);
|
||||
var2 := cos(SunEQ.DC/radcor) * cos(var3) * cos(SunEQ.RA/radcor - var4);
|
||||
Result.Elong := StInvcos(var1+var2) * radcor;
|
||||
end;
|
||||
end;
|
||||
|
||||
{--------------------------------------------------------------------------}
|
||||
|
||||
function MercuryPosition(JD : Double) : TStPlanetsRec;
|
||||
begin
|
||||
PlanEC := ComputeMercury(JD);
|
||||
PlanRC := EclipticToRectangular(PlanEC.L0, PlanEC.B0, PlanEC.R0);
|
||||
Result := RADec(PlanRC, SunRC, True);
|
||||
end;
|
||||
|
||||
{--------------------------------------------------------------------------}
|
||||
|
||||
function VenusPosition(JD : Double) : TStPlanetsRec;
|
||||
begin
|
||||
PlanEC := ComputeVenus(JD);
|
||||
PlanRC := EclipticToRectangular(PlanEC.L0, PlanEC.B0, PlanEC.R0);
|
||||
Result := RADec(PlanRC, SunRC, True);
|
||||
end;
|
||||
|
||||
{--------------------------------------------------------------------------}
|
||||
|
||||
function MarsPosition(JD : Double) : TStPlanetsRec;
|
||||
begin
|
||||
PlanEC := ComputeMars(JD);
|
||||
PlanRC := EclipticToRectangular(PlanEC.L0, PlanEC.B0, PlanEC.R0);
|
||||
Result := RADec(PlanRC, SunRC, True);
|
||||
end;
|
||||
|
||||
{--------------------------------------------------------------------------}
|
||||
|
||||
function JupiterPosition(JD : Double) : TStPlanetsRec;
|
||||
begin
|
||||
PlanEC := ComputeJupiter(JD);
|
||||
PlanRC := EclipticToRectangular(PlanEC.L0, PlanEC.B0, PlanEC.R0);
|
||||
Result := RADec(PlanRC, SunRC, True);
|
||||
end;
|
||||
|
||||
{--------------------------------------------------------------------------}
|
||||
|
||||
function SaturnPosition(JD : Double) : TStPlanetsRec;
|
||||
begin
|
||||
PlanEC := ComputeSaturn(JD);
|
||||
PlanRC := EclipticToRectangular(PlanEC.L0, PlanEC.B0, PlanEC.R0);
|
||||
Result := RADec(PlanRC, SunRC, True);
|
||||
end;
|
||||
|
||||
{--------------------------------------------------------------------------}
|
||||
|
||||
function UranusPosition(JD : Double) : TStPlanetsRec;
|
||||
begin
|
||||
PlanEC := ComputeUranus(JD);
|
||||
PlanRC := EclipticToRectangular(PlanEC.L0, PlanEC.B0, PlanEC.R0);
|
||||
Result := RADec(PlanRC, SunRC, True);
|
||||
end;
|
||||
|
||||
{--------------------------------------------------------------------------}
|
||||
|
||||
function NeptunePosition(JD : Double) : TStPlanetsRec;
|
||||
begin
|
||||
PlanEC := ComputeNeptune(JD);
|
||||
PlanRC := EclipticToRectangular(PlanEC.L0, PlanEC.B0, PlanEC.R0);
|
||||
Result := RADec(PlanRC, SunRC, True);
|
||||
end;
|
||||
|
||||
{--------------------------------------------------------------------------}
|
||||
|
||||
function PlutoPosition(JD : Double) : TStPlanetsRec;
|
||||
begin
|
||||
PlanEC := ComputePluto(JD);
|
||||
PlanRC := EclipticToRectangular(PlanEC.L0, PlanEC.B0, PlanEC.R0);
|
||||
Result := RADec(PlanRC, SunRC, True);
|
||||
end;
|
||||
|
||||
{--------------------------------------------------------------------------}
|
||||
|
||||
procedure PlanetsPos(JD : Double; var PA : TStPlanetsArray);
|
||||
var
|
||||
I : Integer;
|
||||
Sun : TStRectangularCord;
|
||||
begin
|
||||
{find Sun's Rectangular Coordinates}
|
||||
SunRC := SunofDate(JD);
|
||||
|
||||
FillChar(SunEQ, SizeOf(TStPlanetsRec), #0);
|
||||
FillChar(Sun, SizeOf(TStRectangularCord), #0);
|
||||
|
||||
{find Sun's RA/Dec}
|
||||
SunEQ := RADec(SunRC, Sun, False);
|
||||
PA[1] := PlutoPosition(JD);
|
||||
|
||||
{find RA/Dec of each planet}
|
||||
for I := 1 to 8 do begin
|
||||
case I of
|
||||
1 : PA[I] := MercuryPosition(JD);
|
||||
2 : PA[I] := VenusPosition(JD);
|
||||
3 : PA[I] := MarsPosition(JD);
|
||||
4 : PA[I] := JupiterPosition(JD);
|
||||
5 : PA[I] := SaturnPosition(JD);
|
||||
6 : PA[I] := UranusPosition(JD);
|
||||
7 : PA[I] := NeptunePosition(JD);
|
||||
8 : PA[I] := PlutoPosition(JD);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
end.
|
737
components/systools/source/run/steclpse.pas
Normal file
737
components/systools/source/run/steclpse.pas
Normal file
@ -0,0 +1,737 @@
|
||||
// Upgraded to Delphi 2009: Sebastian Zierer
|
||||
|
||||
(* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is TurboPower SysTools
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* TurboPower Software
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 1996-2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** *)
|
||||
|
||||
{*********************************************************}
|
||||
{* SysTools: StEclpse.pas 4.04 *}
|
||||
{*********************************************************}
|
||||
{* SysTools: Lunar/Solar Eclipses *}
|
||||
{*********************************************************}
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
//{$I StDefine.inc}
|
||||
|
||||
{ ************************************************************** }
|
||||
{ Sources: }
|
||||
{ 1. Astronomical Algorithms, Jean Meeus, Willmann-Bell, 1991. }
|
||||
{ }
|
||||
{ 2. Planetary and Lunar Coordinates (1984-2000), U.S. Govt, }
|
||||
{ 1983. }
|
||||
{ }
|
||||
{ 3. Supplement to the American Ephemeris and Nautical Almanac,}
|
||||
{ U.S. Govt, 1964. }
|
||||
{ }
|
||||
{ 4. MPO96-98 source files, Brian D. Warner, 1995-98. }
|
||||
{ }
|
||||
{ ************************************************************** }
|
||||
|
||||
|
||||
unit StEclpse;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
{$IFDEF UseMathUnit} Math, {$ENDIF}
|
||||
StBase, StList, StDate, StAstro, StMath;
|
||||
|
||||
type
|
||||
TStEclipseType = (etLunarPenumbral, etLunarPartial, etLunarTotal,
|
||||
etSolarPartial, etSolarAnnular, etSolarTotal,
|
||||
etSolarAnnularTotal);
|
||||
|
||||
TStHemisphereType = (htNone, htNorthern, htSouthern);
|
||||
|
||||
TStContactTimes = packed record
|
||||
UT1, {start of lunar penumbral phase}
|
||||
UT2, {end of lunar penumbral phase}
|
||||
FirstContact, {start of partial eclipse}
|
||||
SecondContact, {start of totality}
|
||||
MidEclipse, {mid-eclipse}
|
||||
ThirdContact, {end of totality}
|
||||
FourthContact : TDateTime; {end of partial phase}
|
||||
end;
|
||||
|
||||
TStLongLat = packed record
|
||||
JD : TDateTime;
|
||||
Longitude,
|
||||
Latitude,
|
||||
Duration : Double;
|
||||
end;
|
||||
PStLongLat = ^TStLongLat;
|
||||
|
||||
TStEclipseRecord = packed record
|
||||
EType : TStEclipseType; {type of Eclipse}
|
||||
Magnitude : Double; {magnitude of eclipse}
|
||||
Hemisphere : TStHemisphereType; {favored hemisphere - solar}
|
||||
LContacts : TStContactTimes; {Universal Times of critical points}
|
||||
{ in lunar eclipses}
|
||||
Path : TStList; {longitude/latitude of moon's shadow}
|
||||
end; { during solar eclipse}
|
||||
PStEclipseRecord = ^TStEclipseRecord;
|
||||
|
||||
TStBesselianRecord = packed record
|
||||
JD : TDateTime;
|
||||
Delta,
|
||||
Angle,
|
||||
XAxis,
|
||||
YAxis,
|
||||
L1,
|
||||
L2 : Double;
|
||||
end;
|
||||
|
||||
TStEclipses = class(TStList)
|
||||
{.Z+}
|
||||
protected {private}
|
||||
FBesselianElements : array[1..25] of TStBesselianRecord;
|
||||
F0,
|
||||
FUPrime,
|
||||
FDPrime : Double;
|
||||
|
||||
function GetEclipse(Idx : longint) : PStEclipseRecord;
|
||||
procedure CentralEclipseTime(JD, K, J2,
|
||||
SunAnom, MoonAnom,
|
||||
ArgLat, AscNode, EFac : Double;
|
||||
var F1, A1, CentralTime : Double);
|
||||
procedure CheckForEclipse(K : Double);
|
||||
procedure TotalLunarEclipse(CentralJD, MoonAnom, Mu,
|
||||
PMag, UMag, Gamma : Double);
|
||||
procedure PartialLunarEclipse(CentralJD, MoonAnom, Mu,
|
||||
PMag, UMag, Gamma : Double);
|
||||
procedure PenumbralLunarEclipse(CentralJD, MoonAnom, Mu,
|
||||
PMag, UMag, Gamma : Double);
|
||||
|
||||
procedure GetBesselianElements(CentralJD : Double);
|
||||
procedure GetShadowPath(I1, I2 : Integer; Path : TStList);
|
||||
procedure NonPartialSolarEclipse(CentralJD, Mu, Gamma : Double);
|
||||
procedure PartialSolarEclipse(CentralJD, Mu, Gamma : Double);
|
||||
{.Z-}
|
||||
public
|
||||
constructor Create(NodeClass : TStNodeClass);
|
||||
override;
|
||||
procedure FindEclipses(Year : integer);
|
||||
|
||||
property Eclipses[Idx : longint] : PStEclipseRecord
|
||||
read GetEclipse;
|
||||
end;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
procedure DisposePathData(Data : Pointer); far;
|
||||
begin
|
||||
Dispose(PStLongLat(Data));
|
||||
end;
|
||||
|
||||
procedure DisposeEclipseRecord(Data : Pointer); far;
|
||||
var
|
||||
EcData : TStEclipseRecord;
|
||||
begin
|
||||
EcData := TStEclipseRecord(Data^);
|
||||
if (Assigned(EcData.Path)) then
|
||||
EcData.Path.Free;
|
||||
Dispose(PStEclipseRecord(Data));
|
||||
end;
|
||||
|
||||
constructor TStEclipses.Create(NodeClass : TStNodeClass);
|
||||
begin
|
||||
inherited Create(NodeClass);
|
||||
|
||||
DisposeData := DisposeEclipseRecord;
|
||||
end;
|
||||
|
||||
function TStEclipses.GetEclipse(Idx : longint) : PStEclipseRecord;
|
||||
begin
|
||||
if (Idx < 0) or (Idx > pred(Count)) then
|
||||
Result := nil
|
||||
else
|
||||
Result := PStEclipseRecord(Items[Idx].Data);
|
||||
end;
|
||||
|
||||
procedure TStEclipses.FindEclipses(Year : integer);
|
||||
var
|
||||
K,
|
||||
MeanJD,
|
||||
JDofFirst,
|
||||
JDofLast : Double;
|
||||
|
||||
begin
|
||||
JDofFirst := AstJulianDatePrim(Year, 1, 1, 0);
|
||||
JDofLast := AstJulianDatePrim(Year, 12, 31, pred(SecondsInDay));
|
||||
K := Int((Year - 2000) * 12.3685 - 1);
|
||||
repeat
|
||||
MeanJD := 2451550.09765 + 29.530588853 * K;
|
||||
if (MeanJD < JDofFirst) then
|
||||
K := K + 0.5;
|
||||
until (MeanJD >= JDofFirst);
|
||||
|
||||
while (MeanJD < JDofLast) do begin
|
||||
CheckForEclipse(K);
|
||||
K := K + 0.5;
|
||||
MeanJD := 2451550.09765 + 29.530588853 * K;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TStEclipses.CentralEclipseTime(JD, K, J2,
|
||||
SunAnom, MoonAnom,
|
||||
ArgLat, AscNode, EFac : Double;
|
||||
var F1, A1, CentralTime : Double);
|
||||
{the mean error of this routine is 0.36 minutes in a test between}
|
||||
{1951 through 2050 with a maximum of 1.1 - Meeus}
|
||||
begin
|
||||
F1 := ArgLat - (0.02665/radcor) * sin(AscNode);
|
||||
A1 := (299.77/radcor)
|
||||
+ (0.107408/radcor) * K
|
||||
- (0.009173/radcor) * J2;
|
||||
|
||||
if (Frac(K) > 0.1) then
|
||||
{correction at Full Moon - Lunar eclipse}
|
||||
CentralTime := JD
|
||||
- 0.4065 * sin(MoonAnom)
|
||||
+ 0.1727 * EFac * sin(SunAnom)
|
||||
else
|
||||
{correction at New Moon - solar eclipse}
|
||||
CentralTime := JD
|
||||
- 0.4075 * sin(MoonAnom)
|
||||
+ 0.1721 * EFac * sin(SunAnom);
|
||||
|
||||
CentralTime := CentralTime
|
||||
+ 0.0161 * sin(2 * MoonAnom)
|
||||
- 0.0097 * sin(2 * F1)
|
||||
+ 0.0073 * sin(MoonAnom - SunAnom) * EFac
|
||||
- 0.0050 * sin(MoonAnom + SunAnom) * EFac
|
||||
- 0.0023 * sin(MoonAnom - 2*F1)
|
||||
+ 0.0021 * sin(2*SunAnom) * EFac
|
||||
+ 0.0012 * sin(MoonAnom + 2*F1)
|
||||
+ 0.0006 * sin(2*MoonAnom + SunAnom) * EFac
|
||||
- 0.0004 * sin(3*MoonAnom)
|
||||
- 0.0003 * sin(SunAnom + 2*F1) * EFac
|
||||
+ 0.0003 * sin(A1)
|
||||
- 0.0002 * sin(SunAnom - 2*F1) * EFac
|
||||
- 0.0002 * sin(2*MoonAnom - SunAnom) * EFac
|
||||
- 0.0002 * sin(AscNode);
|
||||
end;
|
||||
|
||||
procedure TStEclipses.CheckForEclipse(K : Double);
|
||||
var
|
||||
MeanJD,
|
||||
J1, J2, J3,
|
||||
PMag, UMag,
|
||||
CentralJD,
|
||||
SunAnom,
|
||||
MoonAnom,
|
||||
ArgLat,
|
||||
AscNode,
|
||||
EFac,
|
||||
DeltaT,
|
||||
F1, A1,
|
||||
P, Q, W,
|
||||
Gamma, Mu : Double;
|
||||
begin
|
||||
{compute Julian Centuries}
|
||||
J1 := K / 1236.85;
|
||||
J2 := Sqr(J1);
|
||||
J3 := J2 * J1;
|
||||
|
||||
{mean Julian Date for phase}
|
||||
MeanJD := 2451550.09765
|
||||
+ 29.530588853 * K
|
||||
+ 0.0001337 * J2
|
||||
- 0.000000150 * J3
|
||||
+ 0.00000000073 * J2 * J2;
|
||||
|
||||
{solar mean anomaly}
|
||||
SunAnom := 2.5534
|
||||
+ 29.1053569 * K
|
||||
- 0.0000218 * J2
|
||||
- 0.00000011 * J3;
|
||||
SunAnom := Frac(SunAnom / 360.0) * 360;
|
||||
if (SunAnom < 0) then
|
||||
SunAnom := SunAnom + 360.0;
|
||||
|
||||
{lunar mean anomaly}
|
||||
MoonAnom := 201.5643
|
||||
+ 385.81693528 * K
|
||||
+ 0.0107438 * J2
|
||||
+ 0.00001239 * J3
|
||||
- 0.000000058 * J2 * J2;
|
||||
MoonAnom := Frac(MoonAnom / 360.0) * 360;
|
||||
if (MoonAnom < 0) then
|
||||
MoonAnom := MoonAnom + 360.0;
|
||||
|
||||
{lunar argument of latitude}
|
||||
ArgLat := 160.7108
|
||||
+ 390.67050274 * K
|
||||
- 0.0016341 * J2
|
||||
- 0.00000227 * J3
|
||||
+ 0.000000011 * J2 * J2;
|
||||
ArgLat := Frac(ArgLat / 360.0) * 360;
|
||||
if (ArgLat < 0) then
|
||||
ArgLat := ArgLat + 360.0;
|
||||
|
||||
{lunar ascending node}
|
||||
AscNode := 124.7746
|
||||
- 1.56375580 * K
|
||||
+ 0.0020691 * J2
|
||||
+ 0.00000215 * J3;
|
||||
AscNode := Frac(AscNode / 360.0) * 360;
|
||||
if (AscNode < 0) then
|
||||
AscNode := AscNode + 360.0;
|
||||
|
||||
{convert to radians}
|
||||
SunAnom := SunAnom/radcor;
|
||||
MoonAnom := MoonAnom/radcor;
|
||||
ArgLat := ArgLat/radcor;
|
||||
AscNode := AscNode/radcor;
|
||||
|
||||
{correction factor}
|
||||
EFac := 1.0 - 0.002516 * J1 - 0.0000074 * J2;
|
||||
|
||||
{if AscNode > 21 deg. from 0 or 180 then no eclipse}
|
||||
if (abs(sin(ArgLat)) > (sin(21.0/radcor))) then Exit;
|
||||
|
||||
{there is probably an eclipse - what kind? when?}
|
||||
|
||||
CentralEclipseTime(MeanJD, K, J2, SunAnom, MoonAnom,
|
||||
ArgLat, AscNode, EFac,
|
||||
F1, A1, CentralJD);
|
||||
|
||||
{Central JD is in Dynamical Time. Sun/Moon Positions are based on UT}
|
||||
{An APPROXIMATE conversion is made to UT. This has limited accuracy}
|
||||
|
||||
DeltaT := (-15 + (sqr(CentralJD - 2382148) / 41048480)) / 86400;
|
||||
CentralJD := CentralJD - DeltaT;
|
||||
|
||||
P := 0.2070 * sin(SunAnom) * EFac
|
||||
+ 0.0024 * sin(2*SunAnom) * EFac
|
||||
- 0.0392 * sin(MoonAnom)
|
||||
+ 0.0116 * sin(2*MoonAnom)
|
||||
- 0.0073 * sin(SunAnom + MoonAnom) * EFac
|
||||
+ 0.0067 * sin(MoonAnom - SunAnom) * EFac
|
||||
+ 0.0118 * sin(2*F1);
|
||||
|
||||
Q := 5.2207
|
||||
- 0.0048 * cos(SunAnom) * EFac
|
||||
+ 0.0020 * cos(2*SunAnom) * EFac
|
||||
- 0.3299 * cos(MoonAnom)
|
||||
- 0.0060 * cos(SunAnom + MoonAnom) * EFac
|
||||
+ 0.0041 * cos(MoonAnom - SunAnom) * EFac;
|
||||
|
||||
W := abs(cos(F1));
|
||||
|
||||
Gamma := (P * cos(F1) + Q * sin(F1)) * (1 - 0.0048 * W);
|
||||
|
||||
Mu := 0.0059
|
||||
+ 0.0046 * cos(SunAnom) * EFac
|
||||
- 0.0182 * cos(MoonAnom)
|
||||
+ 0.0004 * cos(2*MoonAnom)
|
||||
- 0.0005 * cos(SunAnom + MoonAnom);
|
||||
|
||||
if (Frac(abs(K)) > 0.1) then begin
|
||||
{Check for Lunar Eclipse possibilities}
|
||||
PMag := (1.5573 + Mu - abs(Gamma)) / 0.5450;
|
||||
UMag := (1.0128 - Mu - abs(Gamma)) / 0.5450;
|
||||
|
||||
if (UMag >= 1.0) then
|
||||
TotalLunarEclipse(CentralJD, MoonAnom, Mu, PMag, UMag, Gamma)
|
||||
else if (UMag > 0) then
|
||||
PartialLunarEclipse(CentralJD, MoonAnom, Mu, PMag, UMag, Gamma)
|
||||
else if ((UMag < 0) and (PMag > 0)) then
|
||||
PenumbralLunarEclipse(CentralJD, MoonAnom, Mu, PMag, UMag, Gamma);
|
||||
end else begin
|
||||
{Check for Solar Eclipse possibilities}
|
||||
{
|
||||
Non-partial eclipses
|
||||
--------------------
|
||||
central Axis of moon's umbral shadow touches earth's surface
|
||||
Can be total, annular, or both
|
||||
|
||||
non-central Axis of moon's umbral shadow does not touch earth's surface
|
||||
Eclipse is usually partial but can be one of possibilities
|
||||
for central eclipse if very near one of the earth's poles
|
||||
|
||||
Partial eclipses
|
||||
----------------
|
||||
partial None of the moon's umbral shadow touches the earth's surface
|
||||
}
|
||||
|
||||
if (abs(Gamma) <= (0.9972 + abs(Mu))) then
|
||||
NonPartialSolarEclipse(CentralJD, Mu, Gamma)
|
||||
else begin
|
||||
if (abs(Gamma) < 1.5433 + Mu) then
|
||||
PartialSolarEclipse(CentralJD, Mu, Gamma);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TStEclipses.TotalLunarEclipse(CentralJD, MoonAnom, Mu,
|
||||
PMag, UMag, Gamma : Double);
|
||||
var
|
||||
TLE : PStEclipseRecord;
|
||||
PartialSemiDur,
|
||||
TotalSemiDur,
|
||||
Dbl1 : Double;
|
||||
begin
|
||||
New(TLE);
|
||||
TLE^.Magnitude := UMag;
|
||||
TLE^.Hemisphere := htNone;
|
||||
TLE^.EType := etLunarTotal;
|
||||
TLE^.Path := nil;
|
||||
CentralJD := AJDToDateTime(CentralJD);
|
||||
|
||||
PartialSemiDur := 1.0128 - Mu;
|
||||
TotalSemiDur := 0.4678 - Mu;
|
||||
Dbl1 := 0.5458 + 0.0400 * cos(MoonAnom);
|
||||
|
||||
PartialSemiDur := 60/Dbl1 * sqrt(sqr(PartialSemiDur) - sqr(Gamma)) / 1440;
|
||||
TotalSemiDur := 60/Dbl1 * sqrt(sqr(TotalSemiDur) - sqr(Gamma)) / 1440;
|
||||
|
||||
TLE^.LContacts.FirstContact := CentralJD - PartialSemiDur;
|
||||
TLE^.LContacts.SecondContact := CentralJD - TotalSemiDur;
|
||||
TLE^.LContacts.MidEclipse := CentralJD;
|
||||
TLE^.LContacts.ThirdContact := CentralJD + TotalSemiDur;
|
||||
TLE^.LContacts.FourthContact := CentralJD + PartialSemiDur;
|
||||
|
||||
PartialSemiDur := 60/Dbl1 * sqrt(sqr(1.5573 + Mu) - sqr(Gamma)) / 1440;
|
||||
TLE^.LContacts.UT1 := CentralJD - PartialSemiDur;
|
||||
TLE^.LContacts.UT2 := CentralJD + PartialSemiDur;
|
||||
|
||||
Self.Append(TLE);
|
||||
end;
|
||||
|
||||
procedure TStEclipses.PartialLunarEclipse(CentralJD, MoonAnom, Mu,
|
||||
PMag, UMag, Gamma : Double);
|
||||
var
|
||||
TLE : PStEclipseRecord;
|
||||
PartialSemiDur,
|
||||
Dbl1 : Double;
|
||||
begin
|
||||
New(TLE);
|
||||
TLE^.Magnitude := UMag;
|
||||
TLE^.Hemisphere := htNone;
|
||||
TLE^.EType := etLunarPartial;
|
||||
TLE^.Path := nil;
|
||||
CentralJD := AJDToDateTime(CentralJD);
|
||||
|
||||
PartialSemiDur := 1.0128 - Mu;
|
||||
Dbl1 := 0.5458 + 0.0400 * cos(MoonAnom);
|
||||
|
||||
PartialSemiDur := 60/Dbl1 * sqrt(sqr(PartialSemiDur) - sqr(Gamma)) / 1440;
|
||||
|
||||
TLE^.LContacts.FirstContact := CentralJD - PartialSemiDur;
|
||||
TLE^.LContacts.SecondContact := 0;
|
||||
TLE^.LContacts.MidEclipse := CentralJD;
|
||||
TLE^.LContacts.ThirdContact := 0;
|
||||
TLE^.LContacts.FourthContact := CentralJD + PartialSemiDur;
|
||||
|
||||
PartialSemiDur := 60/Dbl1 * sqrt(sqr(1.5573 + Mu) - sqr(Gamma)) / 1440;
|
||||
TLE^.LContacts.UT1 := CentralJD - PartialSemiDur;
|
||||
TLE^.LContacts.UT2 := CentralJD + PartialSemiDur;
|
||||
|
||||
Self.Append(TLE);
|
||||
end;
|
||||
|
||||
procedure TStEclipses.PenumbralLunarEclipse(CentralJD, MoonAnom, Mu,
|
||||
PMag, UMag, Gamma : Double);
|
||||
var
|
||||
TLE : PStEclipseRecord;
|
||||
PartialSemiDur,
|
||||
Dbl1 : Double;
|
||||
begin
|
||||
New(TLE);
|
||||
TLE^.Magnitude := PMag;
|
||||
TLE^.Hemisphere := htNone;
|
||||
TLE^.EType := etLunarPenumbral;
|
||||
TLE^.Path := nil;
|
||||
CentralJD := AJDToDateTime(CentralJD);
|
||||
|
||||
TLE^.LContacts.FirstContact := 0;
|
||||
TLE^.LContacts.SecondContact := 0;
|
||||
TLE^.LContacts.MidEclipse := CentralJD;
|
||||
TLE^.LContacts.ThirdContact := 0;
|
||||
TLE^.LContacts.FourthContact := 0;
|
||||
|
||||
Dbl1 := 0.5458 + 0.0400 * cos(MoonAnom);
|
||||
PartialSemiDur := 60/Dbl1 * sqrt(sqr(1.5573 + Mu) - sqr(Gamma)) / 1440;
|
||||
TLE^.LContacts.UT1 := CentralJD - PartialSemiDur;
|
||||
TLE^.LContacts.UT2 := CentralJD + PartialSemiDur;
|
||||
|
||||
Self.Append(TLE);
|
||||
end;
|
||||
|
||||
procedure TStEclipses.GetBesselianElements(CentralJD : Double);
|
||||
var
|
||||
I,
|
||||
Mins : LongInt;
|
||||
CurJD,
|
||||
SidTime,
|
||||
SunDist,
|
||||
MoonDist,
|
||||
DistRatio,
|
||||
Alpha,
|
||||
Theta,
|
||||
Sun1,
|
||||
Sun2,
|
||||
Moon1,
|
||||
Moon2,
|
||||
Dbl3,
|
||||
F1, F2 : Double;
|
||||
DTRec : TStDateTimeRec;
|
||||
SunXYZ : TStSunXYZRec;
|
||||
Sun : TStPosRec;
|
||||
Moon : TStMoonPosRec;
|
||||
begin
|
||||
{compute BesselianElements every 10 minutes starting 2 hours prior to CentralJD}
|
||||
{but forcing positions to be at multiple of ten minutes}
|
||||
for I := 1 to 25 do begin
|
||||
CurJD := CentralJD + ((I-13) * (10/1440));
|
||||
DTRec.D := AstJulianDateToStDate(CurJD, True);
|
||||
if ((Frac(CurJD) + 0.5) >= 1) then
|
||||
Mins := Trunc(((Frac(CurJD) + 0.5)-1) * 1440)
|
||||
else
|
||||
Mins := Trunc((Frac(CurJD) + 0.5) * 1440);
|
||||
{changed because, for example, both 25 and 35 rounded to 30}
|
||||
Mins := ((Mins + 5) div 10) * 10;
|
||||
if (Mins = 1440) then
|
||||
Mins := 0;
|
||||
DTRec.T := Mins * 60;
|
||||
|
||||
SidTime := SiderealTime(DTRec) / radcor;
|
||||
SunXYZ := SunPosPrim(DTRec);
|
||||
Sun := SunPos(DTRec);
|
||||
Moon := MoonPos(DTRec);
|
||||
|
||||
Sun1 := Sun.RA/radcor;
|
||||
Sun2 := Sun.DC/radcor;
|
||||
Moon1 := Moon.RA/radcor;
|
||||
Moon2 := Moon.DC/radcor;
|
||||
|
||||
FBesselianElements[I].JD := StDateToDateTime(DTRec.D)
|
||||
+ StTimeToDateTime(DTRec.T);
|
||||
|
||||
SunDist := 1.0 / sin(8.794/SunXYZ.RV/3600.0/radcor);
|
||||
MoonDist := 1.0 / sin(Moon.Plx/radcor);
|
||||
DistRatio := MoonDist / SunDist;
|
||||
|
||||
Theta := DistRatio/cos(Sun2) * cos(Moon2) * (Moon1 - Sun1);
|
||||
Theta := Theta/(1.0-DistRatio);
|
||||
Alpha := Sun1 - Theta;
|
||||
|
||||
Theta := DistRatio/(1.0 - DistRatio) * (Moon2 - Sun2);
|
||||
|
||||
FBesselianElements[I].Delta := Sun2 - Theta;
|
||||
FBesselianElements[I].Angle := SidTime - Alpha;
|
||||
FBesselianElements[I].XAxis := MoonDist * cos(Moon2) * (sin(Moon1 - Alpha));
|
||||
|
||||
Dbl3 := FBesselianElements[I].Delta;
|
||||
FBesselianElements[I].YAxis := MoonDist * (sin(Moon2) * cos(Dbl3)
|
||||
- cos(Moon2) * sin(Dbl3) * cos(Moon1 - Alpha));
|
||||
|
||||
Theta := DistRatio * SunXYZ.RV;
|
||||
Theta := SunXYZ.RV - Theta;
|
||||
F1 := StInvSin(0.004664012/Theta);
|
||||
F2 := StInvSin(0.004640787/Theta);
|
||||
|
||||
Theta := MoonDist * (sin(Moon2) * sin(Dbl3) + cos(Moon2)
|
||||
* cos(Dbl3) * cos(Moon1 - Alpha));
|
||||
FBesselianElements[I].L1 := (Theta + 0.272453/sin(F1)) * StTan(F1);
|
||||
FBesselianElements[I].L2 := (Theta - 0.272453/sin(F2)) * StTan(F2);
|
||||
|
||||
if (I = 13) then
|
||||
F0 := StTan(F2);
|
||||
|
||||
if (I = 16) then begin
|
||||
FUPrime := FBesselianElements[16].Angle - FBesselianElements[10].Angle;
|
||||
FDPrime := FBesselianElements[16].Delta - FBesselianElements[10].Delta;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TStEclipses.GetShadowPath(I1, I2 : Integer; Path : TStList);
|
||||
var
|
||||
J,
|
||||
I3, I4,
|
||||
I5, I6 : integer;
|
||||
|
||||
Delta,
|
||||
Dbl1,
|
||||
Dbl2,
|
||||
P1,
|
||||
XAxis,
|
||||
YAxis,
|
||||
Eta,
|
||||
R1, R2,
|
||||
D1, D2,
|
||||
D3, D4,
|
||||
V3, V4,
|
||||
V5, V6, V7,
|
||||
XPrime,
|
||||
YPrime : Double;
|
||||
|
||||
Position : PStLongLat;
|
||||
begin
|
||||
for J := I1 to I2 do begin
|
||||
Eta := 0.00669454;
|
||||
Delta := FBesselianElements[J].Delta;
|
||||
XAxis := FBesselianElements[J].XAxis;
|
||||
YAxis := FBesselianElements[J].YAxis;
|
||||
|
||||
R1 := sqrt(1.0 - Eta * sqr(cos(Delta)));
|
||||
R2 := sqrt(1.0 - Eta * sqr(sin(Delta)));
|
||||
|
||||
D1 := sin(Delta) / R1;
|
||||
D2 := sqrt(1.0 - Eta) * cos(Delta) / R1;
|
||||
D3 := Eta * sin(Delta) * cos(Delta) / R1 / R2;
|
||||
D4 := sqrt(1.0 - Eta) / R1 / R2;
|
||||
|
||||
V3 := YAxis / R1;
|
||||
V4 := sqrt(1.0 - sqr(XAxis) - sqr(V3));
|
||||
V5 := R2 * (V4 * D4 - V3 * D3);
|
||||
V6 := FUPrime * (-YAxis * sin(Delta) + V5 * cos(Delta));
|
||||
V7 := FUPrime * XAxis * sin(Delta) - FDPrime * V5;
|
||||
|
||||
if ((I2-I1) div 2) >= 4 then begin
|
||||
I3 := (I2-I1) div 2;
|
||||
I4 := I1 + I3;
|
||||
I5 := I4 - 3;
|
||||
I6 := I4 + 3;
|
||||
XPrime := FBesselianElements[I6].XAxis
|
||||
- FBesselianElements[I5].XAxis;
|
||||
YPrime := FBesselianElements[I6].YAxis
|
||||
- FBesselianElements[I5].YAxis;
|
||||
end else begin
|
||||
XPrime := (FBesselianElements[J+1].XAxis -
|
||||
FBesselianElements[J-1].XAxis) * 3;
|
||||
YPrime := (FBesselianElements[J+1].YAxis -
|
||||
FBesselianElements[J-1].YAxis) * 3;
|
||||
end;
|
||||
|
||||
New(Position);
|
||||
Dbl1 := sqrt(sqr(XPrime - V6) + sqr(YPrime - V7));
|
||||
Position^.JD := FBesselianElements[J].JD;
|
||||
|
||||
Dbl2 := (FBesselianElements[J].L2 - V5 * F0) / Dbl1;
|
||||
Dbl2 := abs(Dbl2 * 120);
|
||||
Position^.Duration := int(Dbl2) + frac(Dbl2) * 0.6;
|
||||
|
||||
Dbl1 := -V3 * D1 + V4 * D2;
|
||||
P1 := StInvTan2(Dbl1, XAxis);
|
||||
|
||||
Dbl2 := (FBesselianElements[J].Angle - P1) * radcor;
|
||||
Dbl2 := frac(Dbl2 / 360.0) * 360;
|
||||
if (Dbl2 < 0) then
|
||||
Dbl2 := Dbl2 + 360.0;
|
||||
if (Dbl2 > 180.0) and (Dbl2 < 360.0) then
|
||||
Dbl2 := Dbl2 - 360.0;
|
||||
Position^.Longitude := Dbl2;
|
||||
|
||||
Dbl1 := StInvSin(V3 * D2 + V4 * D1);
|
||||
Dbl2 := ArcTan(1.003364 * StTan(Dbl1)) * radcor;
|
||||
Position^.Latitude := Dbl2;
|
||||
|
||||
Path.Append(Position);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TStEclipses.NonPartialSolarEclipse(CentralJD, Mu, Gamma : Double);
|
||||
var
|
||||
SolEc : PStEclipseRecord;
|
||||
I1, I2 : Integer;
|
||||
begin
|
||||
New(SolEc);
|
||||
if (Mu < 0) then
|
||||
SolEc^.EType := etSolarTotal
|
||||
else if (Mu > 0.0047) then
|
||||
SolEc^.EType := etSolarAnnular
|
||||
else begin
|
||||
if (Mu < (0.00464 * sqrt(1 - sqr(Gamma)))) then
|
||||
SolEc^.EType := etSolarAnnularTotal
|
||||
else
|
||||
SolEc^.EType := etSolarTotal;
|
||||
end;
|
||||
|
||||
SolEc^.Magnitude := -1;
|
||||
if (Gamma > 0) then
|
||||
SolEc^.Hemisphere := htNorthern
|
||||
else
|
||||
SolEc^.Hemisphere := htSouthern;
|
||||
FillChar(SolEc^.LContacts, SizeOf(TStContactTimes), #0);
|
||||
SolEc^.LContacts.MidEclipse := AJDtoDateTime(CentralJD);
|
||||
|
||||
GetBesselianElements(CentralJD);
|
||||
|
||||
{find limits - then go one step inside at each end}
|
||||
I1 := 1;
|
||||
while (sqr(FBesselianElements[I1].XAxis) +
|
||||
sqr(FBesselianElements[I1].YAxis) >= 1.0) and (I1 < 25) do
|
||||
Inc(I1);
|
||||
Inc(I1);
|
||||
|
||||
I2 := I1;
|
||||
repeat
|
||||
if (I2 < 25) then begin
|
||||
if (sqr(FBesselianElements[I2+1].XAxis) +
|
||||
sqr(FBesselianElements[I2+1].YAxis) < 1) then
|
||||
Inc(I2)
|
||||
else
|
||||
break;
|
||||
end;
|
||||
until (sqr(FBesselianElements[I2].XAxis) +
|
||||
sqr(FBesselianElements[I2].YAxis) >= 1) or (I2 >= 25);
|
||||
Dec(I2);
|
||||
|
||||
{this test accounts for non-central eclipses, i.e., those that are total}
|
||||
{and/or annular but the axis of the moon's shadow does not touch the earth}
|
||||
if (I1 <> I2) and (I1 < 26) and (I2 < 26) then begin
|
||||
SolEc^.Path := TStList.Create(TStListNode);
|
||||
SolEc^.Path.DisposeData := DisposePathData;
|
||||
GetShadowPath(I1, I2, SolEc^.Path);
|
||||
end else
|
||||
SolEc^.Path := nil;
|
||||
Self.Append(SolEc);
|
||||
end;
|
||||
|
||||
procedure TStEclipses.PartialSolarEclipse(CentralJD, Mu, Gamma : Double);
|
||||
var
|
||||
SolEc : PStEclipseRecord;
|
||||
begin
|
||||
New(SolEc);
|
||||
SolEc^.EType := etSolarPartial;
|
||||
SolEc^.Magnitude := (1.5433 + Mu - abs(Gamma)) / (0.5461 + 2*Mu);
|
||||
if (Gamma > 0) then
|
||||
SolEc^.Hemisphere := htNorthern
|
||||
else
|
||||
SolEc^.Hemisphere := htSouthern;
|
||||
FillChar(SolEc^.LContacts, SizeOf(TStContactTimes), #0);
|
||||
SolEc^.LContacts.MidEclipse := AJDToDateTime(CentralJD);
|
||||
SolEc^.Path := nil;
|
||||
Self.Append(SolEc);
|
||||
end;
|
||||
|
||||
|
||||
end.
|
620
components/systools/source/run/stjup.pas
Normal file
620
components/systools/source/run/stjup.pas
Normal file
@ -0,0 +1,620 @@
|
||||
// Upgraded to Delphi 2009: Sebastian Zierer
|
||||
|
||||
(* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is TurboPower SysTools
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* TurboPower Software
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 1996-2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** *)
|
||||
|
||||
{*********************************************************}
|
||||
{* SysTools: StJup.pas 4.04 *}
|
||||
{*********************************************************}
|
||||
{* SysTools: Astronomical Routines (for Jupiter) *}
|
||||
{*********************************************************}
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
//{$I StDefine.inc}
|
||||
|
||||
unit StJup;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
StAstroP;
|
||||
|
||||
function ComputeJupiter(JD : Double) : TStEclipticalCord;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
{--------------------------------------------------------------------------}
|
||||
|
||||
function GetLongitude(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
L0, L1,
|
||||
L2, L3,
|
||||
L4, L5 : Double;
|
||||
begin
|
||||
L0 := 0.59954691495 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.09695898711 * cos(5.06191793110 + 529.69096509000 * Tau)
|
||||
+ 0.00573610145 * cos(1.44406205980 + 7.11354700080 * Tau)
|
||||
+ 0.00306389180 * cos(5.41734729980 + 1059.38193020000 * Tau)
|
||||
+ 0.00097178280 * cos(4.14264708820 + 632.78373931000 * Tau)
|
||||
+ 0.00072903096 * cos(3.64042909250 + 522.57741809000 * Tau)
|
||||
+ 0.00064263986 * cos(3.41145185200 + 103.09277422000 * Tau)
|
||||
+ 0.00039806051 * cos(2.29376744860 + 419.48464388000 * Tau)
|
||||
+ 0.00038857780 * cos(1.27231724860 + 316.39186966000 * Tau)
|
||||
+ 0.00027964622 * cos(1.78454589490 + 536.80451210000 * Tau)
|
||||
+ 0.00013589738 * cos(5.77481031590 + 1589.07289530000 * Tau)
|
||||
+ 0.00008768686 * cos(3.63000324420 + 949.17560897000 * Tau)
|
||||
+ 0.00008246362 * cos(3.58227961650 + 206.18554844000 * Tau)
|
||||
+ 0.00007368057 * cos(5.08101125610 + 735.87651353000 * Tau)
|
||||
+ 0.00006263171 * cos(0.02497643742 + 213.29909544000 * Tau)
|
||||
+ 0.00006114050 * cos(4.51319531670 + 1162.47470440000 * Tau)
|
||||
+ 0.00005305457 * cos(4.18625053490 + 1052.26838320000 * Tau)
|
||||
+ 0.00005305283 * cos(1.30671236850 + 14.22709400200 * Tau)
|
||||
+ 0.00004905419 * cos(1.32084631680 + 110.20632122000 * Tau)
|
||||
+ 0.00004647249 * cos(4.69958109500 + 3.93215326310 * Tau)
|
||||
+ 0.00003045009 * cos(4.31675960320 + 426.59819088000 * Tau)
|
||||
+ 0.00002610001 * cos(1.56667594850 + 846.08283475000 * Tau)
|
||||
+ 0.00002028191 * cos(1.06376547380 + 3.18139373770 * Tau)
|
||||
+ 0.00001920959 * cos(0.97168928755 + 639.89728631000 * Tau)
|
||||
+ 0.00001764768 * cos(2.14148077770 + 1066.49547720000 * Tau)
|
||||
+ 0.00001722983 * cos(3.88036008870 + 1265.56747860000 * Tau)
|
||||
+ 0.00001633217 * cos(3.58201089760 + 515.46387109000 * Tau)
|
||||
+ 0.00001431997 * cos(4.29683690270 + 625.67019231000 * Tau)
|
||||
+ 0.00000973278 * cos(4.09764957060 + 95.97922721800 * Tau)
|
||||
+ 0.00000884439 * cos(2.43701426120 + 412.37109687000 * Tau)
|
||||
+ 0.00000732875 * cos(6.08534113240 + 838.96928775000 * Tau)
|
||||
+ 0.00000731072 * cos(3.80591233960 + 1581.95934830000 * Tau)
|
||||
+ 0.00000709190 * cos(1.29272573660 + 742.99006053000 * Tau)
|
||||
+ 0.00000691928 * cos(6.13368222940 + 2118.76386040000 * Tau)
|
||||
+ 0.00000614464 * cos(4.10853496760 + 1478.86657410000 * Tau)
|
||||
+ 0.00000581902 * cos(4.53967717550 + 309.27832266000 * Tau)
|
||||
+ 0.00000495224 * cos(3.75567461380 + 323.50541666000 * Tau)
|
||||
+ 0.00000440854 * cos(2.95818460940 + 454.90936653000 * Tau)
|
||||
+ 0.00000417266 * cos(1.03554430160 + 2.44768055480 * Tau)
|
||||
+ 0.00000389864 * cos(4.89716105850 + 1692.16566950000 * Tau)
|
||||
+ 0.00000375657 * cos(4.70299124830 + 1368.66025280000 * Tau)
|
||||
+ 0.00000341006 * cos(5.71452525780 + 533.62311836000 * Tau)
|
||||
+ 0.00000330458 * cos(4.74049819490 + 0.04818410980 * Tau)
|
||||
+ 0.00000261540 * cos(1.87652461030 + 0.96320784650 * Tau)
|
||||
+ 0.00000261009 * cos(0.82047246448 + 380.12776796000 * Tau)
|
||||
+ 0.00000256568 * cos(3.72410724160 + 199.07200144000 * Tau)
|
||||
+ 0.00000244170 * cos(5.22020878900 + 728.76296653000 * Tau)
|
||||
+ 0.00000235141 * cos(1.22693908120 + 909.81873305000 * Tau)
|
||||
+ 0.00000220382 * cos(1.65115016000 + 543.91805910000 * Tau)
|
||||
+ 0.00000207327 * cos(1.85461666590 + 525.75881183000 * Tau)
|
||||
+ 0.00000201996 * cos(1.80684574190 + 1375.77379980000 * Tau)
|
||||
+ 0.00000197046 * cos(5.29252149020 + 1155.36115740000 * Tau)
|
||||
+ 0.00000175191 * cos(3.72966554760 + 942.06206197000 * Tau)
|
||||
+ 0.00000175184 * cos(3.22634903430 + 1898.35121790000 * Tau)
|
||||
+ 0.00000174809 * cos(5.90973505280 + 956.28915597000 * Tau)
|
||||
+ 0.00000157909 * cos(4.36483921770 + 1795.25844370000 * Tau)
|
||||
+ 0.00000150502 * cos(3.90625022620 + 74.78159856700 * Tau)
|
||||
+ 0.00000149368 * cos(4.37745104270 + 1685.05212250000 * Tau)
|
||||
+ 0.00000141445 * cos(3.13568357860 + 491.55792946000 * Tau)
|
||||
+ 0.00000137871 * cos(1.31797920780 + 1169.58825140000 * Tau)
|
||||
+ 0.00000130531 * cos(4.16867945490 + 1045.15483620000 * Tau)
|
||||
+ 0.00000117495 * cos(2.50022140890 + 1596.18644230000 * Tau)
|
||||
+ 0.00000116757 * cos(3.38920921040 + 0.52126486180 * Tau)
|
||||
+ 0.00000105895 * cos(4.55439798240 + 526.50957136000 * Tau);
|
||||
|
||||
L1 := 529.93480758000 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00489741194 * cos(4.22066689930 + 529.69096509000 * Tau)
|
||||
+ 0.00228918538 * cos(6.02647464020 + 7.11354700080 * Tau)
|
||||
+ 0.00027655380 * cos(4.57265956820 + 1059.38193020000 * Tau)
|
||||
+ 0.00020720943 * cos(5.45938936290 + 522.57741809000 * Tau)
|
||||
+ 0.00012105732 * cos(0.16985765041 + 536.80451210000 * Tau)
|
||||
+ 0.00006068051 * cos(4.42419502010 + 103.09277422000 * Tau)
|
||||
+ 0.00005433924 * cos(3.98478382570 + 419.48464388000 * Tau)
|
||||
+ 0.00004237795 * cos(5.89009351270 + 14.22709400200 * Tau)
|
||||
+ 0.00002211854 * cos(5.26771446620 + 206.18554844000 * Tau)
|
||||
+ 0.00001745919 * cos(4.92669378490 + 1589.07289530000 * Tau)
|
||||
+ 0.00001295769 * cos(5.55132765090 + 3.18139373770 * Tau)
|
||||
+ 0.00001173129 * cos(5.85647304350 + 1052.26838320000 * Tau)
|
||||
+ 0.00001163411 * cos(0.51450895328 + 3.93215326310 * Tau)
|
||||
+ 0.00001098735 * cos(5.30704981590 + 515.46387109000 * Tau)
|
||||
+ 0.00001007216 * cos(0.46478398551 + 735.87651353000 * Tau)
|
||||
+ 0.00001003574 * cos(3.15040301820 + 426.59819088000 * Tau)
|
||||
+ 0.00000847678 * cos(5.75805850450 + 110.20632122000 * Tau)
|
||||
+ 0.00000827329 * cos(4.80312015730 + 213.29909544000 * Tau)
|
||||
+ 0.00000816397 * cos(0.58643054886 + 1066.49547720000 * Tau)
|
||||
+ 0.00000725447 * cos(5.51827471470 + 639.89728631000 * Tau)
|
||||
+ 0.00000567845 * cos(5.98867049450 + 625.67019231000 * Tau)
|
||||
+ 0.00000474181 * cos(4.13245269170 + 412.37109687000 * Tau)
|
||||
+ 0.00000412930 * cos(5.73652891260 + 95.97922721800 * Tau)
|
||||
+ 0.00000345249 * cos(4.24159565410 + 632.78373931000 * Tau)
|
||||
+ 0.00000335817 * cos(3.73248749050 + 1162.47470440000 * Tau)
|
||||
+ 0.00000234340 * cos(4.03469970330 + 949.17560897000 * Tau)
|
||||
+ 0.00000234066 * cos(6.24302226650 + 309.27832266000 * Tau)
|
||||
+ 0.00000198525 * cos(1.50458442830 + 838.96928775000 * Tau)
|
||||
+ 0.00000194784 * cos(2.21879010910 + 323.50541666000 * Tau)
|
||||
+ 0.00000186899 * cos(6.08620565910 + 742.99006053000 * Tau)
|
||||
+ 0.00000183938 * cos(6.27963588820 + 543.91805910000 * Tau)
|
||||
+ 0.00000171380 * cos(5.41655983840 + 199.07200144000 * Tau)
|
||||
+ 0.00000130771 * cos(0.62643377351 + 728.76296653000 * Tau)
|
||||
+ 0.00000115393 * cos(0.68019050174 + 846.08283475000 * Tau)
|
||||
+ 0.00000115047 * cos(5.28641699140 + 2118.76386040000 * Tau)
|
||||
+ 0.00000107575 * cos(4.49282760120 + 956.28915597000 * Tau)
|
||||
+ 0.00000079686 * cos(5.82412400270 + 1045.15483620000 * Tau)
|
||||
+ 0.00000071643 * cos(5.34162650320 + 942.06206197000 * Tau)
|
||||
+ 0.00000069618 * cos(5.97263450280 + 532.87235883000 * Tau)
|
||||
+ 0.00000066824 * cos(5.73365126530 + 21.34064100200 * Tau)
|
||||
+ 0.00000065635 * cos(0.12924191430 + 526.50957136000 * Tau)
|
||||
+ 0.00000064850 * cos(6.08803490290 + 1581.95934830000 * Tau)
|
||||
+ 0.00000058509 * cos(0.58626971028 + 1155.36115740000 * Tau)
|
||||
+ 0.00000057939 * cos(0.99453087342 + 1596.18644230000 * Tau)
|
||||
+ 0.00000057368 * cos(5.96851304800 + 1169.58825140000 * Tau)
|
||||
+ 0.00000056600 * cos(1.41198438840 + 533.62311836000 * Tau)
|
||||
+ 0.00000054935 * cos(5.42806383720 + 10.29494073800 * Tau)
|
||||
+ 0.00000052309 * cos(5.72661448390 + 117.31986822000 * Tau)
|
||||
+ 0.00000052016 * cos(0.22981299129 + 1368.66025280000 * Tau)
|
||||
+ 0.00000050418 * cos(6.08075147810 + 525.75881183000 * Tau)
|
||||
+ 0.00000047418 * cos(3.62611843240 + 1478.86657410000 * Tau)
|
||||
+ 0.00000046678 * cos(0.51144073175 + 1265.56747860000 * Tau)
|
||||
+ 0.00000039888 * cos(4.16158013600 + 1692.16566950000 * Tau)
|
||||
+ 0.00000033558 * cos(0.09913904872 + 302.16477566000 * Tau)
|
||||
+ 0.00000032827 * cos(5.03596689460 + 220.41264244000 * Tau)
|
||||
+ 0.00000032449 * cos(5.37492530700 + 508.35032409000 * Tau)
|
||||
+ 0.00000029483 * cos(5.42208897100 + 1272.68102560000 * Tau)
|
||||
+ 0.00000029379 * cos(3.35927241530 + 4.66586644600 * Tau)
|
||||
+ 0.00000029307 * cos(0.75907909735 + 88.86568021700 * Tau)
|
||||
+ 0.00000025195 * cos(1.60723063390 + 831.85574075000 * Tau);
|
||||
|
||||
L2 := 0.00047233598 * cos(4.32148323550 + 7.11354700080 * Tau)
|
||||
+ 0.00038965550 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00030629053 * cos(2.93021440220 + 529.69096509000 * Tau)
|
||||
+ 0.00003189317 * cos(1.05504615600 + 522.57741809000 * Tau)
|
||||
+ 0.00002729292 * cos(4.84545481350 + 536.80451210000 * Tau)
|
||||
+ 0.00002723358 * cos(3.41411526640 + 1059.38193020000 * Tau)
|
||||
+ 0.00001721069 * cos(4.18734385160 + 14.22709400200 * Tau)
|
||||
+ 0.00000383258 * cos(5.76790714390 + 419.48464388000 * Tau)
|
||||
+ 0.00000377524 * cos(0.76048964872 + 515.46387109000 * Tau)
|
||||
+ 0.00000367498 * cos(6.05509120410 + 103.09277422000 * Tau)
|
||||
+ 0.00000337386 * cos(3.78644384240 + 3.18139373770 * Tau)
|
||||
+ 0.00000308200 * cos(0.69356654052 + 206.18554844000 * Tau)
|
||||
+ 0.00000218408 * cos(3.81389191350 + 1589.07289530000 * Tau)
|
||||
+ 0.00000198883 * cos(5.33996443440 + 1066.49547720000 * Tau)
|
||||
+ 0.00000197445 * cos(2.48356402050 + 3.93215326310 * Tau)
|
||||
+ 0.00000155862 * cos(1.40642426470 + 1052.26838320000 * Tau)
|
||||
+ 0.00000146230 * cos(3.81373196840 + 639.89728631000 * Tau)
|
||||
+ 0.00000141932 * cos(1.63435169020 + 426.59819088000 * Tau)
|
||||
+ 0.00000129570 * cos(5.83738872530 + 412.37109687000 * Tau)
|
||||
+ 0.00000117327 * cos(1.41435462590 + 625.67019231000 * Tau)
|
||||
+ 0.00000096733 * cos(4.03383427890 + 110.20632122000 * Tau)
|
||||
+ 0.00000090823 * cos(1.10630629040 + 95.97922721800 * Tau)
|
||||
+ 0.00000087292 * cos(2.52235174820 + 632.78373931000 * Tau)
|
||||
+ 0.00000078769 * cos(4.63726131330 + 543.91805910000 * Tau)
|
||||
+ 0.00000072392 * cos(2.21716670030 + 735.87651353000 * Tau)
|
||||
+ 0.00000058475 * cos(0.83216317444 + 199.07200144000 * Tau)
|
||||
+ 0.00000056910 * cos(3.12292059850 + 213.29909544000 * Tau)
|
||||
+ 0.00000048622 * cos(1.67283791620 + 309.27832266000 * Tau)
|
||||
+ 0.00000040150 * cos(4.02485444740 + 21.34064100200 * Tau)
|
||||
+ 0.00000039784 * cos(0.62416945827 + 323.50541666000 * Tau)
|
||||
+ 0.00000035718 * cos(2.32581247000 + 728.76296653000 * Tau)
|
||||
+ 0.00000029255 * cos(3.60838327800 + 10.29494073800 * Tau)
|
||||
+ 0.00000027814 * cos(3.23992013740 + 838.96928775000 * Tau)
|
||||
+ 0.00000025993 * cos(4.50118298290 + 742.99006053000 * Tau)
|
||||
+ 0.00000025620 * cos(2.51240623860 + 1162.47470440000 * Tau)
|
||||
+ 0.00000025194 * cos(1.21868110690 + 1045.15483620000 * Tau)
|
||||
+ 0.00000023591 * cos(3.00532139310 + 956.28915597000 * Tau)
|
||||
+ 0.00000019458 * cos(4.29028644670 + 532.87235883000 * Tau)
|
||||
+ 0.00000017660 * cos(0.80953941560 + 508.35032409000 * Tau)
|
||||
+ 0.00000017058 * cos(4.20001977720 + 2118.76386040000 * Tau)
|
||||
+ 0.00000017040 * cos(1.83402146640 + 526.50957136000 * Tau)
|
||||
+ 0.00000015355 * cos(5.81037986940 + 1596.18644230000 * Tau)
|
||||
+ 0.00000015292 * cos(0.68174165476 + 942.06206197000 * Tau)
|
||||
+ 0.00000014661 * cos(3.99989622590 + 117.31986822000 * Tau)
|
||||
+ 0.00000013920 * cos(5.95169568480 + 316.39186966000 * Tau)
|
||||
+ 0.00000013639 * cos(1.80336677960 + 302.16477566000 * Tau)
|
||||
+ 0.00000013230 * cos(2.51856643600 + 88.86568021700 * Tau)
|
||||
+ 0.00000012756 * cos(4.36856232410 + 1169.58825140000 * Tau)
|
||||
+ 0.00000010986 * cos(4.43586634640 + 525.75881183000 * Tau)
|
||||
+ 0.00000009681 * cos(1.71563161050 + 1581.95934830000 * Tau)
|
||||
+ 0.00000009437 * cos(2.17684563460 + 1155.36115740000 * Tau)
|
||||
+ 0.00000008812 * cos(3.29452783340 + 220.41264244000 * Tau)
|
||||
+ 0.00000008690 * cos(3.31924493610 + 831.85574075000 * Tau)
|
||||
+ 0.00000007823 * cos(5.75672228350 + 846.08283475000 * Tau)
|
||||
+ 0.00000007549 * cos(2.70955516780 + 533.62311836000 * Tau)
|
||||
+ 0.00000006685 * cos(2.17560093280 + 1265.56747860000 * Tau)
|
||||
+ 0.00000006285 * cos(0.49939863541 + 949.17560897000 * Tau);
|
||||
|
||||
L3 := 0.00006501665 * cos(2.59862880480 + 7.11354700080 * Tau)
|
||||
+ 0.00001356524 * cos(1.34635886410 + 529.69096509000 * Tau)
|
||||
+ 0.00000470716 * cos(2.47503977880 + 14.22709400200 * Tau)
|
||||
+ 0.00000416960 * cos(3.24451243210 + 536.80451210000 * Tau)
|
||||
+ 0.00000352851 * cos(2.97360159000 + 522.57741809000 * Tau)
|
||||
+ 0.00000154880 * cos(2.07565585820 + 1059.38193020000 * Tau)
|
||||
+ 0.00000086771 * cos(2.51431584320 + 515.46387109000 * Tau)
|
||||
+ 0.00000044378 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000033538 * cos(3.82633794500 + 1066.49547720000 * Tau)
|
||||
+ 0.00000028457 * cos(2.44754756060 + 206.18554844000 * Tau)
|
||||
+ 0.00000023737 * cos(1.27667172310 + 412.37109687000 * Tau)
|
||||
+ 0.00000022644 * cos(2.98231326770 + 543.91805910000 * Tau)
|
||||
+ 0.00000019798 * cos(2.10099934010 + 639.89728631000 * Tau)
|
||||
+ 0.00000019740 * cos(1.40255938970 + 419.48464388000 * Tau)
|
||||
+ 0.00000018768 * cos(1.59368403500 + 103.09277422000 * Tau)
|
||||
+ 0.00000017033 * cos(2.30214681200 + 21.34064100200 * Tau)
|
||||
+ 0.00000016774 * cos(2.59821460670 + 1589.07289530000 * Tau)
|
||||
+ 0.00000016214 * cos(3.14521117300 + 625.67019231000 * Tau)
|
||||
+ 0.00000016055 * cos(3.36030126300 + 1052.26838320000 * Tau)
|
||||
+ 0.00000013392 * cos(2.75973892200 + 95.97922721800 * Tau)
|
||||
+ 0.00000013234 * cos(2.53862244340 + 199.07200144000 * Tau)
|
||||
+ 0.00000012611 * cos(6.26578110400 + 426.59819088000 * Tau)
|
||||
+ 0.00000008701 * cos(1.76334960740 + 10.29494073800 * Tau)
|
||||
+ 0.00000008637 * cos(2.26563256290 + 110.20632122000 * Tau)
|
||||
+ 0.00000006725 * cos(3.42566433320 + 309.27832266000 * Tau)
|
||||
+ 0.00000006527 * cos(4.03869562910 + 728.76296653000 * Tau)
|
||||
+ 0.00000005675 * cos(2.52096417680 + 508.35032409000 * Tau)
|
||||
+ 0.00000005399 * cos(2.91184687110 + 1045.15483620000 * Tau)
|
||||
+ 0.00000005368 * cos(5.25196153540 + 323.50541666000 * Tau)
|
||||
+ 0.00000003996 * cos(4.30290261180 + 88.86568021700 * Tau)
|
||||
+ 0.00000003857 * cos(3.52381361550 + 302.16477566000 * Tau)
|
||||
+ 0.00000003774 * cos(4.09125315150 + 735.87651353000 * Tau)
|
||||
+ 0.00000003269 * cos(1.43175991270 + 956.28915597000 * Tau)
|
||||
+ 0.00000002783 * cos(4.35817507670 + 1596.18644230000 * Tau)
|
||||
+ 0.00000002661 * cos(1.25276590760 + 213.29909544000 * Tau)
|
||||
+ 0.00000002656 * cos(5.01505839850 + 838.96928775000 * Tau)
|
||||
+ 0.00000002553 * cos(2.23785673280 + 117.31986822000 * Tau)
|
||||
+ 0.00000002371 * cos(2.89662409240 + 742.99006053000 * Tau)
|
||||
+ 0.00000002279 * cos(2.35581871230 + 942.06206197000 * Tau);
|
||||
|
||||
L4 := 0.00000669483 * cos(0.85282421090 + 7.11354700080 * Tau)
|
||||
+ 0.00000114019 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000099961 * cos(0.74258947751 + 14.22709400200 * Tau)
|
||||
+ 0.00000050024 * cos(1.65346208250 + 536.80451210000 * Tau)
|
||||
+ 0.00000043585 * cos(5.82026386620 + 529.69096509000 * Tau)
|
||||
+ 0.00000031813 * cos(4.85829986650 + 522.57741809000 * Tau)
|
||||
+ 0.00000014742 * cos(4.29061635780 + 515.46387109000 * Tau)
|
||||
+ 0.00000008899 * cos(0.71478520741 + 1059.38193020000 * Tau)
|
||||
+ 0.00000004957 * cos(1.29502259430 + 543.91805910000 * Tau)
|
||||
+ 0.00000004484 * cos(2.31715516630 + 1066.49547720000 * Tau)
|
||||
+ 0.00000004251 * cos(0.48326797501 + 21.34064100200 * Tau)
|
||||
+ 0.00000003100 * cos(3.00245542680 + 412.37109687000 * Tau)
|
||||
+ 0.00000002055 * cos(0.39858940218 + 639.89728631000 * Tau)
|
||||
+ 0.00000001902 * cos(4.25925620270 + 199.07200144000 * Tau)
|
||||
+ 0.00000001762 * cos(4.90536207310 + 625.67019231000 * Tau)
|
||||
+ 0.00000001695 * cos(4.26147580800 + 206.18554844000 * Tau)
|
||||
+ 0.00000001375 * cos(5.25546955670 + 1052.26838320000 * Tau)
|
||||
+ 0.00000001203 * cos(4.71614633840 + 95.97922721800 * Tau)
|
||||
+ 0.00000001086 * cos(1.28604571170 + 1589.07289530000 * Tau);
|
||||
|
||||
L5 := 0.00000049577 * cos(5.25658966180 + 7.11354700080 * Tau)
|
||||
+ 0.00000015761 * cos(5.25126837480 + 14.22709400200 * Tau)
|
||||
+ 0.00000004343 * cos(0.01461869263 + 536.80451210000 * Tau)
|
||||
+ 0.00000001526 * cos(1.09739911440 + 522.57741809000 * Tau)
|
||||
+ 0.00000000845 * cos(3.14159265360 + 0.00000000000 * Tau);
|
||||
Result := (L0 + L1*Tau + L2*Tau2 + L3*Tau3 + L4*Tau4 + L5*Tau5);
|
||||
end;
|
||||
|
||||
{---------------------------------------------------------------------------}
|
||||
|
||||
function GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
B0, B1,
|
||||
B2, B3,
|
||||
B4, B5 : Double;
|
||||
begin
|
||||
B0 := 0.02268615703 * cos(3.55852606720 + 529.69096509000 * Tau)
|
||||
+ 0.00110090358 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00109971634 * cos(3.90809347390 + 1059.38193020000 * Tau)
|
||||
+ 0.00008101427 * cos(3.60509573370 + 522.57741809000 * Tau)
|
||||
+ 0.00006437782 * cos(0.30627121409 + 536.80451210000 * Tau)
|
||||
+ 0.00006043996 * cos(4.25883108790 + 1589.07289530000 * Tau)
|
||||
+ 0.00001106880 * cos(2.98534421930 + 1162.47470440000 * Tau)
|
||||
+ 0.00000944328 * cos(1.67522288400 + 426.59819088000 * Tau)
|
||||
+ 0.00000941651 * cos(2.93619072400 + 1052.26838320000 * Tau)
|
||||
+ 0.00000894088 * cos(1.75447429920 + 7.11354700080 * Tau)
|
||||
+ 0.00000835861 * cos(5.17881973230 + 103.09277422000 * Tau)
|
||||
+ 0.00000767280 * cos(2.15473594060 + 632.78373931000 * Tau)
|
||||
+ 0.00000684220 * cos(3.67808770100 + 213.29909544000 * Tau)
|
||||
+ 0.00000629223 * cos(0.64343282328 + 1066.49547720000 * Tau)
|
||||
+ 0.00000558524 * cos(0.01354830508 + 846.08283475000 * Tau)
|
||||
+ 0.00000531670 * cos(2.70305954350 + 110.20632122000 * Tau)
|
||||
+ 0.00000464449 * cos(1.17337249190 + 949.17560897000 * Tau)
|
||||
+ 0.00000431072 * cos(2.60825000490 + 419.48464388000 * Tau)
|
||||
+ 0.00000351433 * cos(4.61062990710 + 2118.76386040000 * Tau)
|
||||
+ 0.00000132160 * cos(4.77816990670 + 742.99006053000 * Tau)
|
||||
+ 0.00000123148 * cos(3.34968181380 + 1692.16566950000 * Tau)
|
||||
+ 0.00000116379 * cos(1.38688232030 + 323.50541666000 * Tau)
|
||||
+ 0.00000115038 * cos(5.04892295440 + 316.39186966000 * Tau)
|
||||
+ 0.00000103762 * cos(3.70103838110 + 515.46387109000 * Tau)
|
||||
+ 0.00000103402 * cos(2.31878999570 + 1478.86657410000 * Tau)
|
||||
+ 0.00000102420 * cos(3.15293785440 + 1581.95934830000 * Tau);
|
||||
|
||||
B1 := 0.00177351787 * cos(5.70166488490 + 529.69096509000 * Tau)
|
||||
+ 0.00003230171 * cos(5.77941619340 + 1059.38193020000 * Tau)
|
||||
+ 0.00003081364 * cos(5.47464296530 + 522.57741809000 * Tau)
|
||||
+ 0.00002211914 * cos(4.73477480210 + 536.80451210000 * Tau)
|
||||
+ 0.00001694232 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000346445 * cos(4.74595174110 + 1052.26838320000 * Tau)
|
||||
+ 0.00000234264 * cos(5.18856099930 + 1066.49547720000 * Tau)
|
||||
+ 0.00000196154 * cos(6.18554286640 + 7.11354700080 * Tau)
|
||||
+ 0.00000150468 * cos(3.92721226090 + 1589.07289530000 * Tau)
|
||||
+ 0.00000114128 * cos(3.43897271830 + 632.78373931000 * Tau)
|
||||
+ 0.00000096667 * cos(2.91426304090 + 949.17560897000 * Tau)
|
||||
+ 0.00000081671 * cos(5.07666097500 + 1162.47470440000 * Tau)
|
||||
+ 0.00000076599 * cos(2.50522188660 + 103.09277422000 * Tau)
|
||||
+ 0.00000076572 * cos(0.61288981445 + 419.48464388000 * Tau)
|
||||
+ 0.00000073875 * cos(5.49958292150 + 515.46387109000 * Tau)
|
||||
+ 0.00000060544 * cos(5.44740084360 + 213.29909544000 * Tau)
|
||||
+ 0.00000049915 * cos(3.94799616570 + 735.87651353000 * Tau)
|
||||
+ 0.00000046032 * cos(0.53850360901 + 110.20632122000 * Tau)
|
||||
+ 0.00000045123 * cos(1.89516645240 + 846.08283475000 * Tau)
|
||||
+ 0.00000036561 * cos(4.69828392840 + 543.91805910000 * Tau)
|
||||
+ 0.00000036019 * cos(6.10952578760 + 316.39186966000 * Tau)
|
||||
+ 0.00000031975 * cos(4.92452714630 + 1581.95934830000 * Tau);
|
||||
|
||||
B2 := 0.00008094051 * cos(1.46322843660 + 529.69096509000 * Tau)
|
||||
+ 0.00000813244 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000742415 * cos(0.95691639003 + 522.57741809000 * Tau)
|
||||
+ 0.00000398951 * cos(2.89888666450 + 536.80451210000 * Tau)
|
||||
+ 0.00000342226 * cos(1.44683789730 + 1059.38193020000 * Tau)
|
||||
+ 0.00000073948 * cos(0.40724675866 + 1052.26838320000 * Tau)
|
||||
+ 0.00000046151 * cos(3.48036895770 + 1066.49547720000 * Tau)
|
||||
+ 0.00000029717 * cos(1.92504171330 + 1589.07289530000 * Tau)
|
||||
+ 0.00000029314 * cos(0.99088831805 + 515.46387109000 * Tau)
|
||||
+ 0.00000022753 * cos(4.27124052440 + 7.11354700080 * Tau)
|
||||
+ 0.00000013916 * cos(2.92242387340 + 543.91805910000 * Tau)
|
||||
+ 0.00000012067 * cos(5.22168932480 + 632.78373931000 * Tau)
|
||||
+ 0.00000010703 * cos(4.88024222480 + 949.17560897000 * Tau)
|
||||
+ 0.00000006078 * cos(6.21089108430 + 1045.15483620000 * Tau);
|
||||
|
||||
B3 := 0.00000251624 * cos(3.38087923080 + 529.69096509000 * Tau)
|
||||
+ 0.00000121738 * cos(2.73311837200 + 522.57741809000 * Tau)
|
||||
+ 0.00000048694 * cos(1.03689996680 + 536.80451210000 * Tau)
|
||||
+ 0.00000010988 * cos(2.31463561350 + 1052.26838320000 * Tau)
|
||||
+ 0.00000008067 * cos(2.76729757620 + 515.46387109000 * Tau)
|
||||
+ 0.00000007287 * cos(4.25268318970 + 1059.38193020000 * Tau)
|
||||
+ 0.00000006205 * cos(1.78115827370 + 1066.49547720000 * Tau)
|
||||
+ 0.00000003627 * cos(1.13028917220 + 543.91805910000 * Tau)
|
||||
+ 0.00000002798 * cos(3.14159265360 + 0.00000000000 * Tau);
|
||||
|
||||
B4 := 0.00000015050 * cos(4.52956999640 + 522.57741809000 * Tau)
|
||||
+ 0.00000005370 * cos(4.47427159140 + 529.69096509000 * Tau)
|
||||
+ 0.00000004456 * cos(5.43908581050 + 536.80451210000 * Tau)
|
||||
+ 0.00000003422 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000001833 * cos(4.51807036230 + 515.46387109000 * Tau)
|
||||
+ 0.00000001322 * cos(4.20117611580 + 1052.26838320000 * Tau);
|
||||
|
||||
B5 := 0.00000001445 * cos(0.09198554072 + 522.57741809000 * Tau);
|
||||
Result := (B0 + B1*Tau + B2*Tau2 + B3*Tau3 + B4*Tau4 + B5*Tau5);
|
||||
end;
|
||||
|
||||
{---------------------------------------------------------------------------}
|
||||
|
||||
function GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
R0, R1,
|
||||
R2, R3,
|
||||
R4, R5 : Double;
|
||||
begin
|
||||
R0 := 5.20887429470 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.25209327020 * cos(3.49108640020 + 529.69096509000 * Tau)
|
||||
+ 0.00610599902 * cos(3.84115365600 + 1059.38193020000 * Tau)
|
||||
+ 0.00282029465 * cos(2.57419879930 + 632.78373931000 * Tau)
|
||||
+ 0.00187647391 * cos(2.07590380080 + 522.57741809000 * Tau)
|
||||
+ 0.00086792941 * cos(0.71001090609 + 419.48464388000 * Tau)
|
||||
+ 0.00072062869 * cos(0.21465694745 + 536.80451210000 * Tau)
|
||||
+ 0.00065517227 * cos(5.97995850840 + 316.39186966000 * Tau)
|
||||
+ 0.00030135275 * cos(2.16132058450 + 949.17560897000 * Tau)
|
||||
+ 0.00029134620 * cos(1.67759243710 + 103.09277422000 * Tau)
|
||||
+ 0.00023947340 * cos(0.27457854894 + 7.11354700080 * Tau)
|
||||
+ 0.00023453209 * cos(3.54023147300 + 735.87651353000 * Tau)
|
||||
+ 0.00022283710 * cos(4.19362773550 + 1589.07289530000 * Tau)
|
||||
+ 0.00013032600 * cos(2.96043055740 + 1162.47470440000 * Tau)
|
||||
+ 0.00012749004 * cos(2.71550102860 + 1052.26838320000 * Tau)
|
||||
+ 0.00009703346 * cos(1.90669572400 + 206.18554844000 * Tau)
|
||||
+ 0.00009161431 * cos(4.41352618940 + 213.29909544000 * Tau)
|
||||
+ 0.00007894539 * cos(2.47907551400 + 426.59819088000 * Tau)
|
||||
+ 0.00007057978 * cos(2.18184753110 + 1265.56747860000 * Tau)
|
||||
+ 0.00006137755 * cos(6.26417542510 + 846.08283475000 * Tau)
|
||||
+ 0.00005477093 * cos(5.65729325170 + 639.89728631000 * Tau)
|
||||
+ 0.00004170012 * cos(2.01605033910 + 515.46387109000 * Tau)
|
||||
+ 0.00004136890 * cos(2.72219979680 + 625.67019231000 * Tau)
|
||||
+ 0.00003502519 * cos(0.56531297394 + 1066.49547720000 * Tau)
|
||||
+ 0.00002616955 * cos(2.00993967130 + 1581.95934830000 * Tau)
|
||||
+ 0.00002499966 * cos(4.55182055940 + 838.96928775000 * Tau)
|
||||
+ 0.00002127644 * cos(6.12751461750 + 742.99006053000 * Tau)
|
||||
+ 0.00001911876 * cos(0.85621927419 + 412.37109687000 * Tau)
|
||||
+ 0.00001610549 * cos(3.08867789270 + 1368.66025280000 * Tau)
|
||||
+ 0.00001479484 * cos(2.68026191370 + 1478.86657410000 * Tau)
|
||||
+ 0.00001230708 * cos(1.89042979700 + 323.50541666000 * Tau)
|
||||
+ 0.00001216810 * cos(1.80171561020 + 110.20632122000 * Tau)
|
||||
+ 0.00001014959 * cos(1.38673237670 + 454.90936653000 * Tau)
|
||||
+ 0.00000998579 * cos(2.87208940110 + 309.27832266000 * Tau)
|
||||
+ 0.00000961072 * cos(4.54876989810 + 2118.76386040000 * Tau)
|
||||
+ 0.00000885708 * cos(4.14785948470 + 533.62311836000 * Tau)
|
||||
+ 0.00000821465 * cos(1.59342534400 + 1898.35121790000 * Tau)
|
||||
+ 0.00000812036 * cos(5.94091899140 + 909.81873305000 * Tau)
|
||||
+ 0.00000776700 * cos(3.67696954690 + 728.76296653000 * Tau)
|
||||
+ 0.00000727162 * cos(3.98824686400 + 1155.36115740000 * Tau)
|
||||
+ 0.00000655289 * cos(2.79065604220 + 1685.05212250000 * Tau)
|
||||
+ 0.00000653981 * cos(3.38150775270 + 1692.16566950000 * Tau)
|
||||
+ 0.00000620798 * cos(4.82284338960 + 956.28915597000 * Tau)
|
||||
+ 0.00000614784 * cos(2.27624915600 + 942.06206197000 * Tau)
|
||||
+ 0.00000562120 * cos(0.08095987241 + 543.91805910000 * Tau)
|
||||
+ 0.00000542221 * cos(0.28360266386 + 525.75881183000 * Tau);
|
||||
|
||||
R1 := 0.01271801596 * cos(2.64937511120 + 529.69096509000 * Tau)
|
||||
+ 0.00061661771 * cos(3.00076251020 + 1059.38193020000 * Tau)
|
||||
+ 0.00053443592 * cos(3.89717644230 + 522.57741809000 * Tau)
|
||||
+ 0.00041390257 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00031185167 * cos(4.88276663530 + 536.80451210000 * Tau)
|
||||
+ 0.00011847190 * cos(2.41329588180 + 419.48464388000 * Tau)
|
||||
+ 0.00009166360 * cos(4.75979408590 + 7.11354700080 * Tau)
|
||||
+ 0.00003403605 * cos(3.34688538000 + 1589.07289530000 * Tau)
|
||||
+ 0.00003203446 * cos(5.21083285480 + 735.87651353000 * Tau)
|
||||
+ 0.00003175763 * cos(2.79297987070 + 103.09277422000 * Tau)
|
||||
+ 0.00002806064 * cos(3.74223693580 + 515.46387109000 * Tau)
|
||||
+ 0.00002676575 * cos(4.33052878700 + 1052.26838320000 * Tau)
|
||||
+ 0.00002600003 * cos(3.63435101620 + 206.18554844000 * Tau)
|
||||
+ 0.00002412207 * cos(1.46947308300 + 426.59819088000 * Tau)
|
||||
+ 0.00002100507 * cos(3.92762682310 + 639.89728631000 * Tau)
|
||||
+ 0.00001646182 * cos(5.30953510950 + 1066.49547720000 * Tau)
|
||||
+ 0.00001641257 * cos(4.41628669820 + 625.67019231000 * Tau)
|
||||
+ 0.00001049866 * cos(3.16113622960 + 213.29909544000 * Tau)
|
||||
+ 0.00001024802 * cos(2.55432643020 + 412.37109687000 * Tau)
|
||||
+ 0.00000806404 * cos(2.67750801380 + 632.78373931000 * Tau)
|
||||
+ 0.00000740996 * cos(2.17094630560 + 1162.47470440000 * Tau)
|
||||
+ 0.00000676928 * cos(6.24953479790 + 838.96928775000 * Tau)
|
||||
+ 0.00000567076 * cos(4.57655414710 + 742.99006053000 * Tau)
|
||||
+ 0.00000484689 * cos(2.46882793190 + 949.17560897000 * Tau)
|
||||
+ 0.00000468895 * cos(4.70973463480 + 543.91805910000 * Tau)
|
||||
+ 0.00000444683 * cos(0.40281181402 + 323.50541666000 * Tau)
|
||||
+ 0.00000415894 * cos(5.36836018210 + 728.76296653000 * Tau)
|
||||
+ 0.00000401738 * cos(4.60528841540 + 309.27832266000 * Tau)
|
||||
+ 0.00000347378 * cos(4.68148808720 + 14.22709400200 * Tau)
|
||||
+ 0.00000337555 * cos(3.16781951120 + 956.28915597000 * Tau)
|
||||
+ 0.00000260753 * cos(5.34290306100 + 846.08283475000 * Tau)
|
||||
+ 0.00000246603 * cos(3.92313823540 + 942.06206197000 * Tau)
|
||||
+ 0.00000220084 * cos(4.84210964960 + 1368.66025280000 * Tau)
|
||||
+ 0.00000203217 * cos(5.59995425430 + 1155.36115740000 * Tau)
|
||||
+ 0.00000200190 * cos(4.43888814440 + 1045.15483620000 * Tau)
|
||||
+ 0.00000197134 * cos(3.70551461390 + 2118.76386040000 * Tau)
|
||||
+ 0.00000196005 * cos(3.75877587140 + 199.07200144000 * Tau)
|
||||
+ 0.00000183504 * cos(4.26526769700 + 95.97922721800 * Tau)
|
||||
+ 0.00000180134 * cos(4.40165491160 + 532.87235883000 * Tau)
|
||||
+ 0.00000170225 * cos(4.84647488870 + 526.50957136000 * Tau)
|
||||
+ 0.00000146335 * cos(6.12958365530 + 533.62311836000 * Tau)
|
||||
+ 0.00000133483 * cos(1.32245735860 + 110.20632122000 * Tau)
|
||||
+ 0.00000132076 * cos(4.51187950810 + 525.75881183000 * Tau);
|
||||
|
||||
R2 := 0.00079644833 * cos(1.35865896600 + 529.69096509000 * Tau)
|
||||
+ 0.00008251618 * cos(5.77773935440 + 522.57741809000 * Tau)
|
||||
+ 0.00007029864 * cos(3.27476965830 + 536.80451210000 * Tau)
|
||||
+ 0.00005314006 * cos(1.83835109710 + 1059.38193020000 * Tau)
|
||||
+ 0.00001860833 * cos(2.97682139370 + 7.11354700080 * Tau)
|
||||
+ 0.00000964466 * cos(5.48031822020 + 515.46387109000 * Tau)
|
||||
+ 0.00000836267 * cos(4.19889881720 + 419.48464388000 * Tau)
|
||||
+ 0.00000497920 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000426570 * cos(2.22753101800 + 639.89728631000 * Tau)
|
||||
+ 0.00000406453 * cos(3.78250730350 + 1066.49547720000 * Tau)
|
||||
+ 0.00000377316 * cos(2.24248352870 + 1589.07289530000 * Tau)
|
||||
+ 0.00000362943 * cos(5.36761847270 + 206.18554844000 * Tau)
|
||||
+ 0.00000342048 * cos(6.09922969320 + 1052.26838320000 * Tau)
|
||||
+ 0.00000339043 * cos(6.12690864040 + 625.67019231000 * Tau)
|
||||
+ 0.00000332578 * cos(0.00328961161 + 426.59819088000 * Tau)
|
||||
+ 0.00000279920 * cos(4.26162555830 + 412.37109687000 * Tau)
|
||||
+ 0.00000257290 * cos(0.96295364983 + 632.78373931000 * Tau)
|
||||
+ 0.00000229777 * cos(0.70530766213 + 735.87651353000 * Tau)
|
||||
+ 0.00000200783 * cos(3.06850623370 + 543.91805910000 * Tau)
|
||||
+ 0.00000199807 * cos(4.42884165320 + 103.09277422000 * Tau)
|
||||
+ 0.00000138606 * cos(2.93235671610 + 14.22709400200 * Tau)
|
||||
+ 0.00000113535 * cos(0.78713911289 + 728.76296653000 * Tau)
|
||||
+ 0.00000094565 * cos(1.70498041070 + 838.96928775000 * Tau)
|
||||
+ 0.00000086025 * cos(5.14434751990 + 323.50541666000 * Tau)
|
||||
+ 0.00000083469 * cos(0.05834873484 + 309.27832266000 * Tau)
|
||||
+ 0.00000080328 * cos(2.98122361800 + 742.99006053000 * Tau)
|
||||
+ 0.00000075198 * cos(1.60495195910 + 956.28915597000 * Tau)
|
||||
+ 0.00000070451 * cos(1.50988357480 + 213.29909544000 * Tau)
|
||||
+ 0.00000066572 * cos(5.47307178080 + 199.07200144000 * Tau)
|
||||
+ 0.00000061649 * cos(6.10137889850 + 1045.15483620000 * Tau)
|
||||
+ 0.00000056203 * cos(0.95534810533 + 1162.47470440000 * Tau)
|
||||
+ 0.00000051904 * cos(5.58435625610 + 942.06206197000 * Tau)
|
||||
+ 0.00000050057 * cos(2.72063162320 + 532.87235883000 * Tau)
|
||||
+ 0.00000044548 * cos(5.52445621410 + 508.35032409000 * Tau)
|
||||
+ 0.00000044282 * cos(0.27118152557 + 526.50957136000 * Tau)
|
||||
+ 0.00000039833 * cos(5.94566506230 + 95.97922721800 * Tau);
|
||||
|
||||
R3 := 0.00003519257 * cos(6.05800633850 + 529.69096509000 * Tau)
|
||||
+ 0.00001073239 * cos(1.67321345760 + 536.80451210000 * Tau)
|
||||
+ 0.00000915666 * cos(1.41329676120 + 522.57741809000 * Tau)
|
||||
+ 0.00000341593 * cos(0.52296542656 + 1059.38193020000 * Tau)
|
||||
+ 0.00000254893 * cos(1.19625473530 + 7.11354700080 * Tau)
|
||||
+ 0.00000221512 * cos(0.95225226237 + 515.46387109000 * Tau)
|
||||
+ 0.00000089729 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000069078 * cos(2.26885282310 + 1066.49547720000 * Tau)
|
||||
+ 0.00000057827 * cos(1.41389745340 + 543.91805910000 * Tau)
|
||||
+ 0.00000057653 * cos(0.52580117593 + 639.89728631000 * Tau)
|
||||
+ 0.00000051079 * cos(5.98016364680 + 412.37109687000 * Tau)
|
||||
+ 0.00000046935 * cos(1.57864237960 + 625.67019231000 * Tau)
|
||||
+ 0.00000042824 * cos(6.11689609100 + 419.48464388000 * Tau)
|
||||
+ 0.00000037477 * cos(1.18262762330 + 14.22709400200 * Tau)
|
||||
+ 0.00000033816 * cos(1.66671706950 + 1052.26838320000 * Tau)
|
||||
+ 0.00000033531 * cos(0.84784977903 + 206.18554844000 * Tau)
|
||||
+ 0.00000031195 * cos(1.04290245900 + 1589.07289530000 * Tau)
|
||||
+ 0.00000030023 * cos(4.63236245030 + 426.59819088000 * Tau)
|
||||
+ 0.00000020804 * cos(2.50071243810 + 728.76296653000 * Tau)
|
||||
+ 0.00000015023 * cos(0.89136998434 + 199.07200144000 * Tau)
|
||||
+ 0.00000014466 * cos(0.96040197071 + 508.35032409000 * Tau)
|
||||
+ 0.00000012969 * cos(1.50233788550 + 1045.15483620000 * Tau)
|
||||
+ 0.00000012319 * cos(2.60952614500 + 735.87651353000 * Tau)
|
||||
+ 0.00000011654 * cos(3.55513510120 + 323.50541666000 * Tau)
|
||||
+ 0.00000011160 * cos(1.79041437550 + 309.27832266000 * Tau)
|
||||
+ 0.00000010554 * cos(6.27845112680 + 956.28915597000 * Tau)
|
||||
+ 0.00000009812 * cos(6.26016859520 + 103.09277422000 * Tau)
|
||||
+ 0.00000009301 * cos(3.45126812480 + 838.96928775000 * Tau);
|
||||
|
||||
R4 := 0.00000128628 * cos(0.08419309557 + 536.80451210000 * Tau)
|
||||
+ 0.00000113458 * cos(4.24858855780 + 529.69096509000 * Tau)
|
||||
+ 0.00000082650 * cos(3.29754909410 + 522.57741809000 * Tau)
|
||||
+ 0.00000037883 * cos(2.73326611140 + 515.46387109000 * Tau)
|
||||
+ 0.00000026694 * cos(5.69142588560 + 7.11354700080 * Tau)
|
||||
+ 0.00000017650 * cos(5.40012536920 + 1059.38193020000 * Tau)
|
||||
+ 0.00000012612 * cos(6.01560416060 + 543.91805910000 * Tau)
|
||||
+ 0.00000009287 * cos(0.76813946494 + 1066.49547720000 * Tau)
|
||||
+ 0.00000008107 * cos(5.68228065710 + 14.22709400200 * Tau)
|
||||
+ 0.00000006978 * cos(1.42751292060 + 412.37109687000 * Tau)
|
||||
+ 0.00000006271 * cos(5.12286932530 + 639.89728631000 * Tau)
|
||||
+ 0.00000005377 * cos(3.33501947270 + 625.67019231000 * Tau)
|
||||
+ 0.00000002911 * cos(3.40334805050 + 1052.26838320000 * Tau)
|
||||
+ 0.00000002593 * cos(4.16090412980 + 728.76296653000 * Tau)
|
||||
+ 0.00000002562 * cos(2.89802035070 + 426.59819088000 * Tau);
|
||||
|
||||
R5 := 0.00000011188 * cos(4.75249399940 + 536.80451210000 * Tau)
|
||||
+ 0.00000004255 * cos(5.91516229170 + 522.57741809000 * Tau)
|
||||
+ 0.00000002079 * cos(5.56781555860 + 515.46387109000 * Tau)
|
||||
+ 0.00000001908 * cos(4.29659647290 + 543.91805910000 * Tau)
|
||||
+ 0.00000001875 * cos(3.69357495840 + 7.11354700080 * Tau)
|
||||
+ 0.00000001612 * cos(4.13222808530 + 1059.38193020000 * Tau)
|
||||
+ 0.00000001590 * cos(5.49312796170 + 1066.49547720000 * Tau);
|
||||
|
||||
Result := (R0 + R1*Tau + R2*Tau2 + R3*Tau3 + R4*Tau4 + R5*Tau5);
|
||||
end;
|
||||
|
||||
{---------------------------------------------------------------------------}
|
||||
|
||||
function ComputeJupiter(JD : Double) : TStEclipticalCord;
|
||||
var
|
||||
Tau,
|
||||
Tau2,
|
||||
Tau3,
|
||||
Tau4,
|
||||
Tau5 : Double;
|
||||
begin
|
||||
Tau := (JD - 2451545.0) / 365250.0;
|
||||
Tau2 := sqr(Tau);
|
||||
Tau3 := Tau * Tau2;
|
||||
Tau4 := sqr(Tau2);
|
||||
Tau5 := Tau2 * Tau3;
|
||||
|
||||
Result.L0 := GetLongitude(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
Result.B0 := GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
Result.R0 := GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
end;
|
||||
|
||||
end.
|
1109
components/systools/source/run/stjupsat.pas
Normal file
1109
components/systools/source/run/stjupsat.pas
Normal file
File diff suppressed because it is too large
Load Diff
1050
components/systools/source/run/stlist.pas
Normal file
1050
components/systools/source/run/stlist.pas
Normal file
File diff suppressed because it is too large
Load Diff
424
components/systools/source/run/stmars.pas
Normal file
424
components/systools/source/run/stmars.pas
Normal file
@ -0,0 +1,424 @@
|
||||
// Upgraded to Delphi 2009: Sebastian Zierer
|
||||
|
||||
(* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is TurboPower SysTools
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* TurboPower Software
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 1996-2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** *)
|
||||
|
||||
{*********************************************************}
|
||||
{* SysTools: StMars.pas 4.04 *}
|
||||
{*********************************************************}
|
||||
{* SysTools: Astronomical Routines (for Mars) *}
|
||||
{*********************************************************}
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
//{$I StDefine.inc}
|
||||
|
||||
unit StMars;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
StAstroP;
|
||||
|
||||
function ComputeMars(JD : Double) : TStEclipticalCord;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
function GetLongitude(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
L0, L1,
|
||||
L2, L3,
|
||||
L4, L5 : Double;
|
||||
begin
|
||||
L0 := 6.20347711580 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.18656368100 * cos(5.05037100300 + 3340.61242670000 * Tau)
|
||||
+ 0.01108216792 * cos(5.40099836960 + 6681.22485340000 * Tau)
|
||||
+ 0.00091798394 * cos(5.75478745110 + 10021.83728000000 * Tau)
|
||||
+ 0.00027744987 * cos(5.97049512940 + 3.52311834900 * Tau)
|
||||
+ 0.00012315897 * cos(0.84956081238 + 2810.92146160000 * Tau)
|
||||
+ 0.00010610230 * cos(2.93958524970 + 2281.23049650000 * Tau)
|
||||
+ 0.00008926772 * cos(4.15697845940 + 0.01725365220 * Tau)
|
||||
+ 0.00008715688 * cos(6.11005159790 + 13362.44970700000 * Tau)
|
||||
+ 0.00007774867 * cos(3.33968655070 + 5621.84292320000 * Tau)
|
||||
+ 0.00006797552 * cos(0.36462243626 + 398.14900341000 * Tau)
|
||||
+ 0.00004161101 * cos(0.22814975330 + 2942.46342330000 * Tau)
|
||||
+ 0.00003575079 * cos(1.66186540140 + 2544.31441990000 * Tau)
|
||||
+ 0.00003075250 * cos(0.85696597082 + 191.44826611000 * Tau)
|
||||
+ 0.00002937543 * cos(6.07893711410 + 0.06731030280 * Tau)
|
||||
+ 0.00002628122 * cos(0.64806143570 + 3337.08930840000 * Tau)
|
||||
+ 0.00002579842 * cos(0.02996706197 + 3344.13554500000 * Tau)
|
||||
+ 0.00002389420 * cos(5.03896401350 + 796.29800682000 * Tau)
|
||||
+ 0.00001798808 * cos(0.65634026844 + 529.69096509000 * Tau)
|
||||
+ 0.00001546408 * cos(2.91579633390 + 1751.53953140000 * Tau)
|
||||
+ 0.00001528140 * cos(1.14979306230 + 6151.53388830000 * Tau)
|
||||
+ 0.00001286232 * cos(3.06795924630 + 2146.16541650000 * Tau)
|
||||
+ 0.00001264356 * cos(3.62275092230 + 5092.15195810000 * Tau)
|
||||
+ 0.00001024907 * cos(3.69334293550 + 8962.45534990000 * Tau)
|
||||
+ 0.00000891567 * cos(0.18293899090 + 16703.06213300000 * Tau)
|
||||
+ 0.00000858760 * cos(2.40093704200 + 2914.01423580000 * Tau)
|
||||
+ 0.00000832724 * cos(4.49495753460 + 3340.62968040000 * Tau)
|
||||
+ 0.00000832718 * cos(2.46418591280 + 3340.59517300000 * Tau)
|
||||
+ 0.00000748724 * cos(3.82248399470 + 155.42039943000 * Tau)
|
||||
+ 0.00000723863 * cos(0.67497565801 + 3738.76143010000 * Tau)
|
||||
+ 0.00000712899 * cos(3.66336014790 + 1059.38193020000 * Tau)
|
||||
+ 0.00000655163 * cos(0.48864075176 + 3127.31333130000 * Tau)
|
||||
+ 0.00000635557 * cos(2.92182704270 + 8432.76438480000 * Tau)
|
||||
+ 0.00000552746 * cos(4.47478863020 + 1748.01641310000 * Tau)
|
||||
+ 0.00000550472 * cos(3.81001205410 + 0.98032106820 * Tau)
|
||||
+ 0.00000472164 * cos(3.62547819410 + 1194.44701020000 * Tau)
|
||||
+ 0.00000425972 * cos(0.55365138172 + 6283.07585000000 * Tau)
|
||||
+ 0.00000415132 * cos(0.49662314774 + 213.29909544000 * Tau)
|
||||
+ 0.00000312141 * cos(0.99853322843 + 6677.70173500000 * Tau)
|
||||
+ 0.00000306552 * cos(0.38052862973 + 6684.74797180000 * Tau)
|
||||
+ 0.00000302377 * cos(4.48618150320 + 3532.06069280000 * Tau)
|
||||
+ 0.00000299396 * cos(2.78323705700 + 6254.62666250000 * Tau)
|
||||
+ 0.00000293199 * cos(4.22131277910 + 20.77539549200 * Tau)
|
||||
+ 0.00000283600 * cos(5.76885494120 + 3149.16416060000 * Tau)
|
||||
+ 0.00000281073 * cos(5.88163372940 + 1349.86740970000 * Tau)
|
||||
+ 0.00000274035 * cos(0.13372501211 + 3340.67973700000 * Tau)
|
||||
+ 0.00000274028 * cos(0.54222141841 + 3340.54511640000 * Tau)
|
||||
+ 0.00000238857 * cos(5.37155471670 + 4136.91043350000 * Tau)
|
||||
+ 0.00000236114 * cos(5.75504515580 + 3333.49887970000 * Tau)
|
||||
+ 0.00000231185 * cos(1.28240685290 + 3870.30339180000 * Tau)
|
||||
+ 0.00000221225 * cos(3.50466672200 + 382.89653222000 * Tau)
|
||||
+ 0.00000204161 * cos(2.82133266180 + 1221.84856630000 * Tau)
|
||||
+ 0.00000193126 * cos(3.35715137750 + 3.59042865180 * Tau)
|
||||
+ 0.00000188639 * cos(1.49103016490 + 9492.14631500000 * Tau)
|
||||
+ 0.00000179196 * cos(1.00561112570 + 951.71840625000 * Tau)
|
||||
+ 0.00000174068 * cos(2.41360332580 + 553.56940284000 * Tau)
|
||||
+ 0.00000172110 * cos(0.43943041719 + 5486.77784320000 * Tau)
|
||||
+ 0.00000160011 * cos(3.94854735190 + 4562.46099300000 * Tau)
|
||||
+ 0.00000144305 * cos(1.41874193420 + 135.06508004000 * Tau)
|
||||
+ 0.00000139897 * cos(3.32592516160 + 2700.71514040000 * Tau)
|
||||
+ 0.00000138245 * cos(4.30145176910 + 7.11354700080 * Tau)
|
||||
+ 0.00000130993 * cos(4.04491720260 + 12303.06777700000 * Tau)
|
||||
+ 0.00000128102 * cos(2.20806651010 + 1592.59601360000 * Tau)
|
||||
+ 0.00000128062 * cos(1.80665643330 + 5088.62883980000 * Tau)
|
||||
+ 0.00000116945 * cos(3.12805282210 + 7903.07341970000 * Tau)
|
||||
+ 0.00000113486 * cos(3.70070798120 + 1589.07289530000 * Tau)
|
||||
+ 0.00000110375 * cos(1.05195079690 + 242.72860397000 * Tau)
|
||||
+ 0.00000104541 * cos(0.78535382076 + 8827.39026990000 * Tau)
|
||||
+ 0.00000100090 * cos(3.24343740860 + 11773.37681200000 * Tau);
|
||||
|
||||
L1 := 3340.85627470000 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.01458227051 * cos(3.60426053610 + 3340.61242670000 * Tau)
|
||||
+ 0.00164901343 * cos(3.92631250960 + 6681.22485340000 * Tau)
|
||||
+ 0.00019963338 * cos(4.26594061030 + 10021.83728000000 * Tau)
|
||||
+ 0.00003452399 * cos(4.73210386370 + 3.52311834900 * Tau)
|
||||
+ 0.00002485480 * cos(4.61277567320 + 13362.44970700000 * Tau)
|
||||
+ 0.00000841551 * cos(4.45858256760 + 2281.23049650000 * Tau)
|
||||
+ 0.00000537566 * cos(5.01589727490 + 398.14900341000 * Tau)
|
||||
+ 0.00000521041 * cos(4.99422678180 + 3344.13554500000 * Tau)
|
||||
+ 0.00000432614 * cos(2.56066402860 + 191.44826611000 * Tau)
|
||||
+ 0.00000429656 * cos(5.31646162370 + 155.42039943000 * Tau)
|
||||
+ 0.00000381747 * cos(3.53881289440 + 796.29800682000 * Tau)
|
||||
+ 0.00000314129 * cos(4.96335266050 + 16703.06213300000 * Tau)
|
||||
+ 0.00000282804 * cos(3.15967518200 + 2544.31441990000 * Tau)
|
||||
+ 0.00000205664 * cos(4.56891455660 + 2146.16541650000 * Tau)
|
||||
+ 0.00000168805 * cos(1.32894813370 + 3337.08930840000 * Tau)
|
||||
+ 0.00000157587 * cos(4.18501035950 + 1751.53953140000 * Tau)
|
||||
+ 0.00000133686 * cos(2.23325104200 + 0.98032106820 * Tau)
|
||||
+ 0.00000133563 * cos(5.97421903930 + 1748.01641310000 * Tau)
|
||||
+ 0.00000117591 * cos(6.02407213860 + 6151.53388830000 * Tau)
|
||||
+ 0.00000116561 * cos(2.21347652540 + 1059.38193020000 * Tau)
|
||||
+ 0.00000113876 * cos(2.12869455090 + 1194.44701020000 * Tau)
|
||||
+ 0.00000113595 * cos(5.42803224320 + 3738.76143010000 * Tau)
|
||||
+ 0.00000091098 * cos(1.09627836590 + 1349.86740970000 * Tau)
|
||||
+ 0.00000085342 * cos(3.90854841010 + 553.56940284000 * Tau)
|
||||
+ 0.00000083301 * cos(5.29636626270 + 6684.74797180000 * Tau)
|
||||
+ 0.00000080776 * cos(4.42813405870 + 529.69096509000 * Tau)
|
||||
+ 0.00000079531 * cos(2.24864266330 + 8962.45534990000 * Tau)
|
||||
+ 0.00000072946 * cos(2.50189460550 + 951.71840625000 * Tau)
|
||||
+ 0.00000072505 * cos(5.84208163240 + 242.72860397000 * Tau)
|
||||
+ 0.00000071487 * cos(3.85636094440 + 2914.01423580000 * Tau)
|
||||
+ 0.00000067582 * cos(5.02327686470 + 382.89653222000 * Tau)
|
||||
+ 0.00000065089 * cos(1.01802439310 + 3340.59517300000 * Tau)
|
||||
+ 0.00000065089 * cos(3.04879603980 + 3340.62968040000 * Tau)
|
||||
+ 0.00000061508 * cos(4.15183159800 + 3149.16416060000 * Tau)
|
||||
+ 0.00000056520 * cos(3.88813699320 + 4136.91043350000 * Tau)
|
||||
+ 0.00000048477 * cos(4.87362121540 + 213.29909544000 * Tau)
|
||||
+ 0.00000047613 * cos(1.18238046060 + 3333.49887970000 * Tau)
|
||||
+ 0.00000046584 * cos(1.31452419910 + 3185.19202730000 * Tau)
|
||||
+ 0.00000041343 * cos(0.71385375517 + 1592.59601360000 * Tau)
|
||||
+ 0.00000040272 * cos(2.72542480610 + 7.11354700080 * Tau)
|
||||
+ 0.00000040055 * cos(5.31611875490 + 20043.67456000000 * Tau)
|
||||
+ 0.00000032886 * cos(5.41067411970 + 6283.07585000000 * Tau)
|
||||
+ 0.00000028244 * cos(0.04534124888 + 9492.14631500000 * Tau)
|
||||
+ 0.00000026579 * cos(3.88960724780 + 1221.84856630000 * Tau)
|
||||
+ 0.00000026554 * cos(5.11271747610 + 2700.71514040000 * Tau);
|
||||
|
||||
L2 := 0.00058015791 * cos(2.04979463280 + 3340.61242670000 * Tau)
|
||||
+ 0.00054187645 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00013908426 * cos(2.45742359890 + 6681.22485340000 * Tau)
|
||||
+ 0.00002465104 * cos(2.80000020930 + 10021.83728000000 * Tau)
|
||||
+ 0.00000398379 * cos(3.14118428290 + 13362.44970700000 * Tau)
|
||||
+ 0.00000222022 * cos(3.19436080020 + 3.52311834900 * Tau)
|
||||
+ 0.00000120957 * cos(0.54325292454 + 155.42039943000 * Tau)
|
||||
+ 0.00000061517 * cos(3.48529427370 + 16703.06213300000 * Tau)
|
||||
+ 0.00000053638 * cos(3.54191121460 + 3344.13554500000 * Tau)
|
||||
+ 0.00000034268 * cos(6.00188499120 + 2281.23049650000 * Tau)
|
||||
+ 0.00000031665 * cos(4.14015171790 + 191.44826611000 * Tau)
|
||||
+ 0.00000029839 * cos(1.99870679840 + 796.29800682000 * Tau)
|
||||
+ 0.00000023168 * cos(4.33403365930 + 242.72860397000 * Tau)
|
||||
+ 0.00000021659 * cos(3.44532466380 + 398.14900341000 * Tau)
|
||||
+ 0.00000020370 * cos(5.42191375400 + 553.56940284000 * Tau)
|
||||
+ 0.00000016227 * cos(0.65678953303 + 0.98032106820 * Tau)
|
||||
+ 0.00000016044 * cos(6.11000472440 + 2146.16541650000 * Tau)
|
||||
+ 0.00000015648 * cos(1.22086121940 + 1748.01641310000 * Tau)
|
||||
+ 0.00000014927 * cos(6.09541783560 + 3185.19202730000 * Tau)
|
||||
+ 0.00000014416 * cos(4.01923812100 + 951.71840625000 * Tau)
|
||||
+ 0.00000014317 * cos(2.61851897590 + 1349.86740970000 * Tau)
|
||||
+ 0.00000013352 * cos(0.60189008414 + 1194.44701020000 * Tau)
|
||||
+ 0.00000011934 * cos(3.86122163020 + 6684.74797180000 * Tau)
|
||||
+ 0.00000011260 * cos(4.71822363670 + 2544.31441990000 * Tau)
|
||||
+ 0.00000010396 * cos(0.25038714677 + 382.89653222000 * Tau)
|
||||
+ 0.00000009468 * cos(0.68170713564 + 1059.38193020000 * Tau)
|
||||
+ 0.00000009229 * cos(3.83209092320 + 20043.67456000000 * Tau)
|
||||
+ 0.00000009005 * cos(3.88271826100 + 3738.76143010000 * Tau)
|
||||
+ 0.00000007501 * cos(5.46498630410 + 1751.53953140000 * Tau)
|
||||
+ 0.00000006859 * cos(2.57522504140 + 3149.16416060000 * Tau)
|
||||
+ 0.00000006681 * cos(2.37843690340 + 4136.91043350000 * Tau)
|
||||
+ 0.00000006497 * cos(5.47773072870 + 1592.59601360000 * Tau)
|
||||
+ 0.00000006311 * cos(2.34104793670 + 3097.88382270000 * Tau);
|
||||
|
||||
L3 := 0.00001482423 * cos(0.44434694876 + 3340.61242670000 * Tau)
|
||||
+ 0.00000662095 * cos(0.88469178686 + 6681.22485340000 * Tau)
|
||||
+ 0.00000188268 * cos(1.28799982500 + 10021.83728000000 * Tau)
|
||||
+ 0.00000041474 * cos(1.64850787000 + 13362.44970700000 * Tau)
|
||||
+ 0.00000025994 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000022661 * cos(2.05267665260 + 155.42039943000 * Tau)
|
||||
+ 0.00000010454 * cos(1.58006906380 + 3.52311834900 * Tau)
|
||||
+ 0.00000008024 * cos(1.99858757690 + 16703.06213300000 * Tau)
|
||||
+ 0.00000004900 * cos(2.82452457970 + 242.72860397000 * Tau)
|
||||
+ 0.00000003782 * cos(2.01914272510 + 3344.13554500000 * Tau)
|
||||
+ 0.00000003176 * cos(4.59144897930 + 3185.19202730000 * Tau)
|
||||
+ 0.00000003134 * cos(0.65044714325 + 553.56940284000 * Tau);
|
||||
|
||||
L4 := 0.00000113969 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000028725 * cos(5.63662412040 + 6681.22485340000 * Tau)
|
||||
+ 0.00000024447 * cos(5.13868481450 + 3340.61242670000 * Tau)
|
||||
+ 0.00000011187 * cos(6.03161074430 + 10021.83728000000 * Tau)
|
||||
+ 0.00000003252 * cos(0.13228350651 + 13362.44970700000 * Tau)
|
||||
+ 0.00000003190 * cos(3.56267988300 + 155.42039943000 * Tau)
|
||||
+ 0.00000000787 * cos(0.49340783377 + 16703.06213300000 * Tau)
|
||||
+ 0.00000000776 * cos(1.31734531590 + 242.72860397000 * Tau);
|
||||
|
||||
L5 := 0.00000000868 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000000710 * cos(4.04089996520 + 6681.22485340000 * Tau);
|
||||
Result := (L0 + L1*Tau + L2*Tau2 + L3*Tau3 + L4*Tau4 + L5*Tau5);
|
||||
end;
|
||||
|
||||
{-------------------------------------------------------------------------}
|
||||
|
||||
function GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
B0, B1,
|
||||
B2, B3,
|
||||
B4, B5 : Double;
|
||||
begin
|
||||
B0 := 0.03197134986 * cos(3.76832042430 + 3340.61242670000 * Tau)
|
||||
+ 0.00298033234 * cos(4.10616996240 + 6681.22485340000 * Tau)
|
||||
+ 0.00289104742 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00031365538 * cos(4.44651052850 + 10021.83728000000 * Tau)
|
||||
+ 0.00003484100 * cos(4.78812547890 + 13362.44970700000 * Tau)
|
||||
+ 0.00000443401 * cos(5.02642620490 + 3344.13554500000 * Tau)
|
||||
+ 0.00000442999 * cos(5.65233015880 + 3337.08930840000 * Tau)
|
||||
+ 0.00000399109 * cos(5.13056814700 + 16703.06213300000 * Tau)
|
||||
+ 0.00000292506 * cos(3.79290644590 + 2281.23049650000 * Tau)
|
||||
+ 0.00000181982 * cos(6.13648011700 + 6151.53388830000 * Tau)
|
||||
+ 0.00000163159 * cos(4.26399626630 + 529.69096509000 * Tau)
|
||||
+ 0.00000159678 * cos(2.23194610250 + 1059.38193020000 * Tau)
|
||||
+ 0.00000149297 * cos(2.16501209920 + 5621.84292320000 * Tau)
|
||||
+ 0.00000142686 * cos(1.18215016110 + 3340.59517300000 * Tau)
|
||||
+ 0.00000142685 * cos(3.21292180820 + 3340.62968040000 * Tau)
|
||||
+ 0.00000139323 * cos(2.41796344240 + 8962.45534990000 * Tau);
|
||||
|
||||
B1 := 0.00350068845 * cos(5.36847836210 + 3340.61242670000 * Tau)
|
||||
+ 0.00014116030 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00009670755 * cos(5.47877786510 + 6681.22485340000 * Tau)
|
||||
+ 0.00001471918 * cos(3.20205766790 + 10021.83728000000 * Tau)
|
||||
+ 0.00000425864 * cos(3.40843812880 + 13362.44970700000 * Tau)
|
||||
+ 0.00000102039 * cos(0.77617286189 + 3337.08930840000 * Tau)
|
||||
+ 0.00000078848 * cos(3.71768293870 + 16703.06213300000 * Tau)
|
||||
+ 0.00000032708 * cos(3.45803723680 + 5621.84292320000 * Tau)
|
||||
+ 0.00000026171 * cos(2.48293558070 + 2281.23049650000 * Tau);
|
||||
|
||||
B2 := 0.00016726690 * cos(0.60221392419 + 3340.61242670000 * Tau)
|
||||
+ 0.00004986799 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000302141 * cos(5.55871276020 + 6681.22485340000 * Tau)
|
||||
+ 0.00000025767 * cos(1.89662673500 + 13362.44970700000 * Tau)
|
||||
+ 0.00000021452 * cos(0.91749968618 + 10021.83728000000 * Tau)
|
||||
+ 0.00000011820 * cos(2.24240738700 + 3337.08930840000 * Tau)
|
||||
+ 0.00000007985 * cos(2.24892866610 + 16703.06213300000 * Tau);
|
||||
|
||||
B3 := 0.00000606506 * cos(1.98050633530 + 3340.61242670000 * Tau)
|
||||
+ 0.00000042611 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000013652 * cos(1.79588228800 + 6681.22485340000 * Tau)
|
||||
+ 0.00000002730 * cos(3.45377082120 + 10021.83728000000 * Tau);
|
||||
|
||||
B4 := 0.00000013369 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000011334 * cos(3.45724352590 + 3340.61242670000 * Tau)
|
||||
+ 0.00000000744 * cos(0.50445805257 + 6681.22485340000 * Tau);
|
||||
|
||||
B5 := 0.00000000000;
|
||||
Result := (B0 + B1*Tau + B2*Tau2 + B3*Tau3 + B4*Tau4 + B5*Tau5);
|
||||
end;
|
||||
|
||||
{-------------------------------------------------------------------------}
|
||||
|
||||
function GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
R0, R1,
|
||||
R2, R3,
|
||||
R4, R5 : Double;
|
||||
begin
|
||||
R0 := 1.53033488280 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.14184953153 * cos(3.47971283520 + 3340.61242670000 * Tau)
|
||||
+ 0.00660776357 * cos(3.81783442100 + 6681.22485340000 * Tau)
|
||||
+ 0.00046179117 * cos(4.15595316280 + 10021.83728000000 * Tau)
|
||||
+ 0.00008109738 * cos(5.55958460170 + 2810.92146160000 * Tau)
|
||||
+ 0.00007485315 * cos(1.77238998070 + 5621.84292320000 * Tau)
|
||||
+ 0.00005523193 * cos(1.36436318880 + 2281.23049650000 * Tau)
|
||||
+ 0.00003825160 * cos(4.49407182410 + 13362.44970700000 * Tau)
|
||||
+ 0.00002484385 * cos(4.92545577890 + 2942.46342330000 * Tau)
|
||||
+ 0.00002306539 * cos(0.09081742493 + 2544.31441990000 * Tau)
|
||||
+ 0.00001999399 * cos(5.36059605230 + 3337.08930840000 * Tau)
|
||||
+ 0.00001960198 * cos(4.74249386320 + 3344.13554500000 * Tau)
|
||||
+ 0.00001167115 * cos(2.11261501150 + 5092.15195810000 * Tau)
|
||||
+ 0.00001102828 * cos(5.00908264160 + 398.14900341000 * Tau)
|
||||
+ 0.00000992252 * cos(5.83862401070 + 6151.53388830000 * Tau)
|
||||
+ 0.00000899077 * cos(4.40790433990 + 529.69096509000 * Tau)
|
||||
+ 0.00000807348 * cos(2.10216647100 + 1059.38193020000 * Tau)
|
||||
+ 0.00000797910 * cos(3.44839026170 + 796.29800682000 * Tau)
|
||||
+ 0.00000740980 * cos(1.49906336890 + 2146.16541650000 * Tau)
|
||||
+ 0.00000725583 * cos(1.24516913470 + 8432.76438480000 * Tau)
|
||||
+ 0.00000692340 * cos(2.13378814790 + 8962.45534990000 * Tau)
|
||||
+ 0.00000633144 * cos(0.89353285018 + 3340.59517300000 * Tau)
|
||||
+ 0.00000633140 * cos(2.92430448170 + 3340.62968040000 * Tau)
|
||||
+ 0.00000629976 * cos(1.28738135860 + 1751.53953140000 * Tau)
|
||||
+ 0.00000574352 * cos(0.82896196337 + 2914.01423580000 * Tau)
|
||||
+ 0.00000526187 * cos(5.38292276230 + 3738.76143010000 * Tau)
|
||||
+ 0.00000472776 * cos(5.19850457870 + 3127.31333130000 * Tau)
|
||||
+ 0.00000348095 * cos(4.83219198910 + 16703.06213300000 * Tau)
|
||||
+ 0.00000283702 * cos(2.90692294910 + 3532.06069280000 * Tau)
|
||||
+ 0.00000279552 * cos(5.25749247550 + 6283.07585000000 * Tau)
|
||||
+ 0.00000275501 * cos(1.21767967780 + 6254.62666250000 * Tau)
|
||||
+ 0.00000275224 * cos(2.90818883830 + 1748.01641310000 * Tau)
|
||||
+ 0.00000269891 * cos(3.76394728620 + 5884.92684660000 * Tau)
|
||||
+ 0.00000239133 * cos(2.03669896240 + 1194.44701020000 * Tau)
|
||||
+ 0.00000233827 * cos(5.10546492530 + 5486.77784320000 * Tau)
|
||||
+ 0.00000228128 * cos(3.25529020620 + 6872.67311950000 * Tau)
|
||||
+ 0.00000223190 * cos(4.19861593780 + 3149.16416060000 * Tau)
|
||||
+ 0.00000219428 * cos(5.58340248780 + 191.44826611000 * Tau)
|
||||
+ 0.00000208336 * cos(4.84626442120 + 3340.67973700000 * Tau)
|
||||
+ 0.00000208333 * cos(5.25476080770 + 3340.54511640000 * Tau)
|
||||
+ 0.00000186213 * cos(5.69871555750 + 6677.70173500000 * Tau)
|
||||
+ 0.00000182686 * cos(5.08062683360 + 6684.74797180000 * Tau)
|
||||
+ 0.00000178613 * cos(4.18423025540 + 3333.49887970000 * Tau)
|
||||
+ 0.00000175995 * cos(5.95341786370 + 3870.30339180000 * Tau)
|
||||
+ 0.00000163534 * cos(3.79889068110 + 4136.91043350000 * Tau);
|
||||
|
||||
R1 := 0.01107433340 * cos(2.03250524950 + 3340.61242670000 * Tau)
|
||||
+ 0.00103175886 * cos(2.37071845680 + 6681.22485340000 * Tau)
|
||||
+ 0.00012877200 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00010815880 * cos(2.70888093800 + 10021.83728000000 * Tau)
|
||||
+ 0.00001194550 * cos(3.04702182500 + 13362.44970700000 * Tau)
|
||||
+ 0.00000438579 * cos(2.88835072630 + 2281.23049650000 * Tau)
|
||||
+ 0.00000395698 * cos(3.42324611290 + 3344.13554500000 * Tau)
|
||||
+ 0.00000182572 * cos(1.58428644000 + 2544.31441990000 * Tau)
|
||||
+ 0.00000135850 * cos(3.38507017990 + 16703.06213300000 * Tau)
|
||||
+ 0.00000128362 * cos(6.04343360440 + 3337.08930840000 * Tau)
|
||||
+ 0.00000128204 * cos(0.62991220570 + 1059.38193020000 * Tau)
|
||||
+ 0.00000127068 * cos(1.95389775740 + 796.29800682000 * Tau)
|
||||
+ 0.00000118443 * cos(2.99761345070 + 2146.16541650000 * Tau)
|
||||
+ 0.00000087537 * cos(3.42052758980 + 398.14900341000 * Tau)
|
||||
+ 0.00000083026 * cos(3.85574986650 + 3738.76143010000 * Tau)
|
||||
+ 0.00000075598 * cos(4.45101839350 + 6151.53388830000 * Tau)
|
||||
+ 0.00000071999 * cos(2.76442180680 + 529.69096509000 * Tau)
|
||||
+ 0.00000066542 * cos(2.54892602690 + 1751.53953140000 * Tau)
|
||||
+ 0.00000066430 * cos(4.40597549960 + 1748.01641310000 * Tau)
|
||||
+ 0.00000057518 * cos(0.54354327916 + 1194.44701020000 * Tau)
|
||||
+ 0.00000054314 * cos(0.67750943459 + 8962.45534990000 * Tau)
|
||||
+ 0.00000051035 * cos(3.72585409210 + 6684.74797180000 * Tau)
|
||||
+ 0.00000049428 * cos(5.72959428360 + 3340.59517300000 * Tau)
|
||||
+ 0.00000049424 * cos(1.47717922230 + 3340.62968040000 * Tau)
|
||||
+ 0.00000048318 * cos(2.58061691300 + 3149.16416060000 * Tau)
|
||||
+ 0.00000047863 * cos(2.28527896840 + 2914.01423580000 * Tau)
|
||||
+ 0.00000038953 * cos(2.31900090550 + 4136.91043350000 * Tau);
|
||||
|
||||
R2 := 0.00044242247 * cos(0.47930603943 + 3340.61242670000 * Tau)
|
||||
+ 0.00008138042 * cos(0.86998398093 + 6681.22485340000 * Tau)
|
||||
+ 0.00001274915 * cos(1.22594050810 + 10021.83728000000 * Tau)
|
||||
+ 0.00000187387 * cos(1.57298991980 + 13362.44970700000 * Tau)
|
||||
+ 0.00000052396 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000040744 * cos(1.97080175060 + 3344.13554500000 * Tau)
|
||||
+ 0.00000026616 * cos(1.91665615760 + 16703.06213300000 * Tau)
|
||||
+ 0.00000017825 * cos(4.43499505330 + 2281.23049650000 * Tau)
|
||||
+ 0.00000011713 * cos(4.52510453730 + 3185.19202730000 * Tau)
|
||||
+ 0.00000010209 * cos(5.39143469550 + 1059.38193020000 * Tau)
|
||||
+ 0.00000009950 * cos(0.41870577185 + 796.29800682000 * Tau);
|
||||
|
||||
R3 := 0.00001113107 * cos(5.14987350140 + 3340.61242670000 * Tau)
|
||||
+ 0.00000424446 * cos(5.61343766480 + 6681.22485340000 * Tau)
|
||||
+ 0.00000100044 * cos(5.99726827030 + 10021.83728000000 * Tau)
|
||||
+ 0.00000019606 * cos(0.07633062094 + 13362.44970700000 * Tau)
|
||||
+ 0.00000004693 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000003477 * cos(0.42951907576 + 16703.06213300000 * Tau);
|
||||
|
||||
R4 := 0.00000019552 * cos(3.58211650470 + 3340.61242670000 * Tau)
|
||||
+ 0.00000016323 * cos(4.05116076920 + 6681.22485340000 * Tau)
|
||||
+ 0.00000005848 * cos(4.46383962090 + 10021.83728000000 * Tau)
|
||||
+ 0.00000001532 * cos(4.84374321620 + 13362.44970700000 * Tau);
|
||||
|
||||
R5 := 0.00000000000;
|
||||
Result := (R0 + R1*Tau + R2*Tau2 + R3*Tau3 + R4*Tau4 + R5*Tau5);
|
||||
end;
|
||||
|
||||
{-------------------------------------------------------------------------}
|
||||
|
||||
function ComputeMars(JD : Double) : TStEclipticalCord;
|
||||
var
|
||||
Tau,
|
||||
Tau2,
|
||||
Tau3,
|
||||
Tau4,
|
||||
Tau5 : Double;
|
||||
begin
|
||||
Tau := (JD - 2451545.0) / 365250.0;
|
||||
Tau2 := sqr(Tau);
|
||||
Tau3 := Tau * Tau2;
|
||||
Tau4 := sqr(Tau2);
|
||||
Tau5 := Tau2 * Tau3;
|
||||
|
||||
Result.L0 := GetLongitude(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
Result.B0 := GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
Result.R0 := GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
end;
|
||||
|
||||
|
||||
end.
|
280
components/systools/source/run/stmerc.pas
Normal file
280
components/systools/source/run/stmerc.pas
Normal file
@ -0,0 +1,280 @@
|
||||
// Upgraded to Delphi 2009: Sebastian Zierer
|
||||
|
||||
|
||||
(* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is TurboPower SysTools
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* TurboPower Software
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 1996-2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** *)
|
||||
|
||||
{*********************************************************}
|
||||
{* SysTools: StMerc.pas 4.04 *}
|
||||
{*********************************************************}
|
||||
{* SysTools: Astronomical Routines (for Mercury) *}
|
||||
{*********************************************************}
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
//{$I StDefine.inc}
|
||||
|
||||
unit StMerc;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
StAstroP;
|
||||
|
||||
function ComputeMercury(JD : Double) : TStEclipticalCord;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
function GetLongitude(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
L0, L1,
|
||||
L2, L3,
|
||||
L4, L5 : Double;
|
||||
begin
|
||||
L0 := 4.40250710140 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.40989414976 * cos(1.48302034190 + 26087.90314200000 * Tau)
|
||||
+ 0.05046294199 * cos(4.47785489540 + 52175.80628300000 * Tau)
|
||||
+ 0.00855346843 * cos(1.16520322350 + 78263.70942500000 * Tau)
|
||||
+ 0.00165590362 * cos(4.11969163180 + 104351.61257000000 * Tau)
|
||||
+ 0.00034561897 * cos(0.77930765817 + 130439.51571000000 * Tau)
|
||||
+ 0.00007583476 * cos(3.71348400510 + 156527.41885000000 * Tau)
|
||||
+ 0.00003559740 * cos(1.51202669420 + 1109.37855210000 * Tau)
|
||||
+ 0.00001803463 * cos(4.10333178410 + 5661.33204920000 * Tau)
|
||||
+ 0.00001726012 * cos(0.35832239908 + 182615.32199000000 * Tau)
|
||||
+ 0.00001589923 * cos(2.99510417810 + 25028.52121100000 * Tau)
|
||||
+ 0.00001364682 * cos(4.59918318740 + 27197.28169400000 * Tau)
|
||||
+ 0.00001017332 * cos(0.88031439040 + 31749.23519100000 * Tau)
|
||||
+ 0.00000714182 * cos(1.54144865260 + 24978.52458900000 * Tau)
|
||||
+ 0.00000643759 * cos(5.30266110790 + 21535.94964400000 * Tau)
|
||||
+ 0.00000451137 * cos(6.04989275290 + 51116.42435300000 * Tau)
|
||||
+ 0.00000404200 * cos(3.28228847030 + 208703.22513000000 * Tau)
|
||||
+ 0.00000352441 * cos(5.24156297100 + 20426.57109200000 * Tau)
|
||||
+ 0.00000345212 * cos(2.79211901540 + 15874.61759500000 * Tau)
|
||||
+ 0.00000343313 * cos(5.76531885340 + 955.59974161000 * Tau)
|
||||
+ 0.00000339214 * cos(5.86327765000 + 25558.21217600000 * Tau)
|
||||
+ 0.00000325335 * cos(1.33674334780 + 53285.18483500000 * Tau)
|
||||
+ 0.00000272947 * cos(2.49451163980 + 529.69096509000 * Tau)
|
||||
+ 0.00000264336 * cos(3.91705094010 + 57837.13833200000 * Tau)
|
||||
+ 0.00000259587 * cos(0.98732428184 + 4551.95349710000 * Tau)
|
||||
+ 0.00000238793 * cos(0.11343953378 + 1059.38193020000 * Tau)
|
||||
+ 0.00000234830 * cos(0.26672118900 + 11322.66409800000 * Tau)
|
||||
+ 0.00000216645 * cos(0.65987207348 + 13521.75144200000 * Tau)
|
||||
+ 0.00000208995 * cos(2.09178234010 + 47623.85278600000 * Tau)
|
||||
+ 0.00000183359 * cos(2.62878670780 + 27043.50288300000 * Tau)
|
||||
+ 0.00000181629 * cos(2.43413502470 + 25661.30495100000 * Tau)
|
||||
+ 0.00000175965 * cos(4.53636829860 + 51066.42773100000 * Tau)
|
||||
+ 0.00000172643 * cos(2.45200164170 + 24498.83024600000 * Tau)
|
||||
+ 0.00000142316 * cos(3.36003948840 + 37410.56724000000 * Tau)
|
||||
+ 0.00000137942 * cos(0.29098447849 + 10213.28554600000 * Tau)
|
||||
+ 0.00000125219 * cos(3.72079804430 + 39609.65458300000 * Tau)
|
||||
+ 0.00000118233 * cos(2.78149786370 + 77204.32749400000 * Tau)
|
||||
+ 0.00000106422 * cos(4.20572116250 + 19804.82729200000 * Tau);
|
||||
|
||||
L1 := 26088.1470620 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.01126007832 * cos(6.21703971000 + 26087.90314200000 * Tau)
|
||||
+ 0.00303471395 * cos(3.05565472360 + 52175.80628300000 * Tau)
|
||||
+ 0.00080538452 * cos(6.10454743370 + 78263.70942500000 * Tau)
|
||||
+ 0.00021245035 * cos(2.83531934450 + 104351.61257000000 * Tau)
|
||||
+ 0.00005592094 * cos(5.82675673330 + 130439.51571000000 * Tau)
|
||||
+ 0.00001472233 * cos(2.51845458400 + 156527.41885000000 * Tau)
|
||||
+ 0.00000388318 * cos(5.48039225890 + 182615.32199000000 * Tau)
|
||||
+ 0.00000352244 * cos(3.05238094400 + 1109.37855210000 * Tau)
|
||||
+ 0.00000102743 * cos(2.14879173780 + 208703.22513000000 * Tau)
|
||||
+ 0.00000093540 * cos(6.11791163930 + 27197.28169400000 * Tau)
|
||||
+ 0.00000090579 * cos(0.00045481669 + 24978.52458900000 * Tau)
|
||||
+ 0.00000051941 * cos(5.62107554050 + 5661.33204920000 * Tau)
|
||||
+ 0.00000044370 * cos(4.57348500460 + 25028.52121100000 * Tau)
|
||||
+ 0.00000028070 * cos(3.04195430990 + 51066.42773100000 * Tau)
|
||||
+ 0.00000027295 * cos(5.09210138840 + 234791.12827000000 * Tau);
|
||||
|
||||
L2 := 0.00053049845 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00016903658 * cos(4.69072300650 + 26087.90314200000 * Tau)
|
||||
+ 0.00007396711 * cos(1.34735624670 + 52175.80628300000 * Tau)
|
||||
+ 0.00003018297 * cos(4.45643539700 + 78263.70942500000 * Tau)
|
||||
+ 0.00001107419 * cos(1.26226537550 + 104351.61257000000 * Tau)
|
||||
+ 0.00000378173 * cos(4.31998055900 + 130439.51571000000 * Tau)
|
||||
+ 0.00000122998 * cos(1.06868541050 + 156527.41885000000 * Tau)
|
||||
+ 0.00000038663 * cos(4.08011610180 + 182615.32199000000 * Tau)
|
||||
+ 0.00000014898 * cos(4.63343085810 + 1109.37855210000 * Tau)
|
||||
+ 0.00000011861 * cos(0.79187646439 + 208703.22513000000 * Tau);
|
||||
|
||||
L3 := 0.00000188077 * cos(0.03466830117 + 52175.80628300000 * Tau)
|
||||
+ 0.00000142152 * cos(3.12505452600 + 26087.90314200000 * Tau)
|
||||
+ 0.00000096877 * cos(3.00378171920 + 78263.70942500000 * Tau)
|
||||
+ 0.00000043669 * cos(6.01867965830 + 104351.61257000000 * Tau)
|
||||
+ 0.00000035395 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000018045 * cos(2.77538373990 + 130439.51571000000 * Tau)
|
||||
+ 0.00000006971 * cos(5.81808665740 + 156527.41885000000 * Tau)
|
||||
+ 0.00000002556 * cos(2.57014364450 + 182615.32199000000 * Tau);
|
||||
|
||||
L4 := 0.00000114078 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000003247 * cos(2.02848007620 + 26087.90314200000 * Tau)
|
||||
+ 0.00000001914 * cos(1.41731803760 + 78263.70942500000 * Tau)
|
||||
+ 0.00000001727 * cos(4.50137643800 + 52175.80628300000 * Tau)
|
||||
+ 0.00000001237 * cos(4.49970181060 + 104351.61257000000 * Tau)
|
||||
+ 0.00000000645 * cos(1.26591776990 + 130439.51571000000 * Tau);
|
||||
|
||||
L5 := 0.00000000877 * cos(3.14159265360 + 0.00000000000 * Tau);
|
||||
Result := (L0 + L1*Tau + L2*Tau2 + L3*Tau3 + L4*Tau4 + L5*Tau5);
|
||||
end;
|
||||
|
||||
{-------------------------------------------------------------------------}
|
||||
|
||||
function GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
B0, B1,
|
||||
B2, B3,
|
||||
B4, B5 : Double;
|
||||
begin
|
||||
|
||||
B0 := 0.11737528962 * cos(1.98357498770 + 26087.90314200000 * Tau)
|
||||
+ 0.02388076996 * cos(5.03738959690 + 52175.80628300000 * Tau)
|
||||
+ 0.01222839532 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00543251810 * cos(1.79644363960 + 78263.70942500000 * Tau)
|
||||
+ 0.00129778770 * cos(4.83232503960 + 104351.61257000000 * Tau)
|
||||
+ 0.00031866927 * cos(1.58088495670 + 130439.51571000000 * Tau)
|
||||
+ 0.00007963301 * cos(4.60972126350 + 156527.41885000000 * Tau)
|
||||
+ 0.00002014189 * cos(1.35324164690 + 182615.32199000000 * Tau)
|
||||
+ 0.00000513953 * cos(4.37835409310 + 208703.22513000000 * Tau)
|
||||
+ 0.00000208584 * cos(2.02020294150 + 24978.52458900000 * Tau)
|
||||
+ 0.00000207674 * cos(4.91772564070 + 27197.28169400000 * Tau)
|
||||
+ 0.00000132013 * cos(1.11908492280 + 234791.12827000000 * Tau)
|
||||
+ 0.00000121395 * cos(1.81271752060 + 53285.18483500000 * Tau)
|
||||
+ 0.00000100454 * cos(5.65684734210 + 20426.57109200000 * Tau);
|
||||
|
||||
B1 := 0.00429151362 * cos(3.50169780390 + 26087.90314200000 * Tau)
|
||||
+ 0.00146233668 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00022675295 * cos(0.01515366880 + 52175.80628300000 * Tau)
|
||||
+ 0.00010894981 * cos(0.48540174006 + 78263.70942500000 * Tau)
|
||||
+ 0.00006353462 * cos(3.42943919980 + 104351.61257000000 * Tau)
|
||||
+ 0.00002495743 * cos(0.16051210665 + 130439.51571000000 * Tau)
|
||||
+ 0.00000859585 * cos(3.18452433650 + 156527.41885000000 * Tau)
|
||||
+ 0.00000277503 * cos(6.21020774180 + 182615.32199000000 * Tau)
|
||||
+ 0.00000086233 * cos(2.95244391820 + 208703.22513000000 * Tau)
|
||||
+ 0.00000027696 * cos(0.29068938889 + 27197.28169400000 * Tau)
|
||||
+ 0.00000026133 * cos(5.97708962690 + 234791.12827000000 * Tau);
|
||||
|
||||
B2 := 0.00011830934 * cos(4.79065585780 + 26087.90314200000 * Tau)
|
||||
+ 0.00001913516 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00001044801 * cos(1.21216540540 + 52175.80628300000 * Tau)
|
||||
+ 0.00000266213 * cos(4.43418336530 + 78263.70942500000 * Tau)
|
||||
+ 0.00000170280 * cos(1.62255638710 + 104351.61257000000 * Tau)
|
||||
+ 0.00000096300 * cos(4.80023692020 + 130439.51571000000 * Tau)
|
||||
+ 0.00000044692 * cos(1.60758267770 + 156527.41885000000 * Tau)
|
||||
+ 0.00000018316 * cos(4.66904655380 + 182615.32199000000 * Tau)
|
||||
+ 0.00000006927 * cos(1.43404888930 + 208703.22513000000 * Tau);
|
||||
|
||||
B3 := 0.00000235423 * cos(0.35387524604 + 26087.90314200000 * Tau)
|
||||
+ 0.00000160537 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000018904 * cos(4.36275460260 + 52175.80628300000 * Tau)
|
||||
+ 0.00000006376 * cos(2.50715381440 + 78263.70942500000 * Tau)
|
||||
+ 0.00000004580 * cos(6.14257817570 + 104351.61257000000 * Tau)
|
||||
+ 0.00000003061 * cos(3.12497552680 + 130439.51571000000 * Tau)
|
||||
+ 0.00000001732 * cos(6.26642412060 + 156527.41885000000 * Tau);
|
||||
|
||||
B4 := 0.00000004276 * cos(1.74579932120 + 26087.90314200000 * Tau)
|
||||
+ 0.00000001023 * cos(3.14159265360 + 0.00000000000 * Tau);
|
||||
|
||||
B5 := 0.00000000000 * cos(0.00000000000 + 0.00000000000 * Tau);
|
||||
Result := (B0 + B1*Tau + B2*Tau2 + B3*Tau3 + B4*Tau4 + B5*Tau5);
|
||||
end;
|
||||
|
||||
{-------------------------------------------------------------------------}
|
||||
|
||||
function GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
R0, R1,
|
||||
R2, R3,
|
||||
R4, R5 : Double;
|
||||
begin
|
||||
R0 := 0.39528271652 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.07834131817 * cos(6.19233722600 + 26087.90314200000 * Tau)
|
||||
+ 0.00795525557 * cos(2.95989690100 + 52175.80628300000 * Tau)
|
||||
+ 0.00121281763 * cos(6.01064153810 + 78263.70942500000 * Tau)
|
||||
+ 0.00021921969 * cos(2.77820093970 + 104351.61257000000 * Tau)
|
||||
+ 0.00004354065 * cos(5.82894543260 + 130439.51571000000 * Tau)
|
||||
+ 0.00000918228 * cos(2.59650562600 + 156527.41885000000 * Tau)
|
||||
+ 0.00000289955 * cos(1.42441936950 + 25028.52121100000 * Tau)
|
||||
+ 0.00000260033 * cos(3.02817753480 + 27197.28169400000 * Tau)
|
||||
+ 0.00000201855 * cos(5.64725040350 + 182615.32199000000 * Tau)
|
||||
+ 0.00000201499 * cos(5.59227724200 + 31749.23519100000 * Tau)
|
||||
+ 0.00000141980 * cos(6.25264202640 + 24978.52458900000 * Tau)
|
||||
+ 0.00000100144 * cos(3.73435608690 + 21535.94964400000 * Tau);
|
||||
|
||||
R1 := 0.00217347739 * cos(4.65617158660 + 26087.90314200000 * Tau)
|
||||
+ 0.00044141826 * cos(1.42385543980 + 52175.80628300000 * Tau)
|
||||
+ 0.00010094479 * cos(4.47466326320 + 78263.70942500000 * Tau)
|
||||
+ 0.00002432804 * cos(1.24226083430 + 104351.61257000000 * Tau)
|
||||
+ 0.00001624367 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000603996 * cos(4.29303116560 + 130439.51571000000 * Tau)
|
||||
+ 0.00000152851 * cos(1.06060779810 + 156527.41885000000 * Tau)
|
||||
+ 0.00000039202 * cos(4.11136751420 + 182615.32199000000 * Tau);
|
||||
|
||||
R2 := 0.00003117867 * cos(3.08231840300 + 26087.90314200000 * Tau)
|
||||
+ 0.00001245396 * cos(6.15183317420 + 52175.80628300000 * Tau)
|
||||
+ 0.00000424822 * cos(2.92583352960 + 78263.70942500000 * Tau)
|
||||
+ 0.00000136130 * cos(5.97983925840 + 104351.61257000000 * Tau)
|
||||
+ 0.00000042175 * cos(2.74936980630 + 130439.51571000000 * Tau)
|
||||
+ 0.00000021759 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000012793 * cos(5.80143162210 + 156527.41885000000 * Tau);
|
||||
|
||||
R3 := 0.00000032676 * cos(1.67971635360 + 26087.90314200000 * Tau)
|
||||
+ 0.00000024166 * cos(4.63403169000 + 52175.80628300000 * Tau)
|
||||
+ 0.00000012133 * cos(1.38983781540 + 78263.70942500000 * Tau)
|
||||
+ 0.00000005140 * cos(4.43915386930 + 104351.61257000000 * Tau)
|
||||
+ 0.00000001981 * cos(1.20733880270 + 130439.51571000000 * Tau);
|
||||
|
||||
R4 := 0.00000000000;
|
||||
|
||||
R5 := 0.00000000000;
|
||||
Result := (R0 + R1*Tau + R2*Tau2 + R3*Tau3 + R4*Tau4 + R5*Tau5);
|
||||
end;
|
||||
|
||||
{---------------------------------------------------------------------------}
|
||||
|
||||
function ComputeMercury(JD : Double) : TStEclipticalCord;
|
||||
var
|
||||
Tau,
|
||||
Tau2,
|
||||
Tau3,
|
||||
Tau4,
|
||||
Tau5 : Double;
|
||||
begin
|
||||
Tau := (JD - 2451545.0) / 365250.0;
|
||||
Tau2 := sqr(Tau);
|
||||
Tau3 := Tau * Tau2;
|
||||
Tau4 := sqr(Tau2);
|
||||
Tau5 := Tau2 * Tau3;
|
||||
|
||||
Result.L0 := GetLongitude(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
Result.B0 := GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
Result.R0 := GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
end;
|
||||
|
||||
|
||||
end.
|
286
components/systools/source/run/stneptun.pas
Normal file
286
components/systools/source/run/stneptun.pas
Normal file
@ -0,0 +1,286 @@
|
||||
// Upgraded to Delphi 2009: Sebastian Zierer
|
||||
|
||||
(* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is TurboPower SysTools
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* TurboPower Software
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 1996-2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** *)
|
||||
|
||||
{*********************************************************}
|
||||
{* SysTools: StNeptun.pas 4.04 *}
|
||||
{*********************************************************}
|
||||
{* SysTools: Astronomical Routines (for Neptune) *}
|
||||
{*********************************************************}
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
//{$I StDefine.inc}
|
||||
|
||||
unit StNeptun;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
StAstroP;
|
||||
|
||||
function ComputeNeptune(JD : Double) : TStEclipticalCord;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
function GetLongitude(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
L0, L1,
|
||||
L2, L3,
|
||||
L4, L5 : Double;
|
||||
begin
|
||||
L0 := 5.31188633050 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.01798475509 * cos(2.90101273050 + 38.13303563800 * Tau)
|
||||
+ 0.01019727662 * cos(0.48580923660 + 1.48447270830 * Tau)
|
||||
+ 0.00124531845 * cos(4.83008090680 + 36.64856292900 * Tau)
|
||||
+ 0.00042064450 * cos(5.41054991610 + 2.96894541660 * Tau)
|
||||
+ 0.00037714589 * cos(6.09221834950 + 35.16409022100 * Tau)
|
||||
+ 0.00033784734 * cos(1.24488865580 + 76.26607127600 * Tau)
|
||||
+ 0.00016482741 * cos(0.00007729261 + 491.55792946000 * Tau)
|
||||
+ 0.00009198582 * cos(4.93747059920 + 39.61750834600 * Tau)
|
||||
+ 0.00008994249 * cos(0.27462142569 + 175.16605980000 * Tau)
|
||||
+ 0.00004216235 * cos(1.98711914360 + 73.29712585900 * Tau)
|
||||
+ 0.00003364818 * cos(1.03590121820 + 33.67961751300 * Tau)
|
||||
+ 0.00002284800 * cos(4.20606932560 + 4.45341812490 * Tau)
|
||||
+ 0.00001433512 * cos(2.78340432710 + 74.78159856700 * Tau)
|
||||
+ 0.00000900240 * cos(2.07606702420 + 109.94568879000 * Tau)
|
||||
+ 0.00000744996 * cos(3.19032530140 + 71.81265315100 * Tau)
|
||||
+ 0.00000506206 * cos(5.74785370250 + 114.39910691000 * Tau)
|
||||
+ 0.00000399552 * cos(0.34972342569 + 1021.24889460000 * Tau)
|
||||
+ 0.00000345195 * cos(3.46186210170 + 41.10198105400 * Tau)
|
||||
+ 0.00000340323 * cos(3.30369900420 + 77.75054398400 * Tau)
|
||||
+ 0.00000323004 * cos(2.24815188610 + 32.19514480500 * Tau)
|
||||
+ 0.00000306338 * cos(0.49684039897 + 0.52126486180 * Tau)
|
||||
+ 0.00000287322 * cos(4.50523446020 + 0.04818410980 * Tau)
|
||||
+ 0.00000282170 * cos(2.24565579690 + 146.59425172000 * Tau)
|
||||
+ 0.00000266605 * cos(4.88932609480 + 0.96320784650 * Tau)
|
||||
+ 0.00000251941 * cos(5.78166597290 + 388.46515524000 * Tau)
|
||||
+ 0.00000244722 * cos(1.24693337930 + 9.56122755560 * Tau)
|
||||
+ 0.00000232887 * cos(2.50459795020 + 137.03302416000 * Tau)
|
||||
+ 0.00000227079 * cos(1.79713054540 + 453.42489382000 * Tau)
|
||||
+ 0.00000170404 * cos(3.32390630650 + 108.46121608000 * Tau)
|
||||
+ 0.00000151401 * cos(2.19153094280 + 33.94024994400 * Tau)
|
||||
+ 0.00000150180 * cos(2.99706110410 + 5.93789083320 * Tau)
|
||||
+ 0.00000148295 * cos(0.85948986145 + 111.43016150000 * Tau)
|
||||
+ 0.00000118672 * cos(3.67706204310 + 2.44768055480 * Tau)
|
||||
+ 0.00000109300 * cos(2.41599378050 + 183.24281465000 * Tau)
|
||||
+ 0.00000103305 * cos(0.04078966679 + 0.26063243090 * Tau)
|
||||
+ 0.00000103054 * cos(4.40441222000 + 70.32818044200 * Tau)
|
||||
+ 0.00000101821 * cos(5.70539236950 + 0.11187458460 * Tau);
|
||||
|
||||
L1 := 38.37687716700 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00016604187 * cos(4.86319129560 + 1.48447270830 * Tau)
|
||||
+ 0.00015807148 * cos(2.27923488530 + 38.13303563800 * Tau)
|
||||
+ 0.00003334701 * cos(3.68199676020 + 76.26607127600 * Tau)
|
||||
+ 0.00001305840 * cos(3.67320813490 + 2.96894541660 * Tau)
|
||||
+ 0.00000604832 * cos(1.50477747550 + 35.16409022100 * Tau)
|
||||
+ 0.00000178623 * cos(3.45318524150 + 39.61750834600 * Tau)
|
||||
+ 0.00000106537 * cos(2.45126138330 + 4.45341812490 * Tau)
|
||||
+ 0.00000105747 * cos(2.75479326550 + 33.67961751300 * Tau)
|
||||
+ 0.00000072684 * cos(5.48724732700 + 36.64856292900 * Tau)
|
||||
+ 0.00000057355 * cos(1.85767603380 + 114.39910691000 * Tau)
|
||||
+ 0.00000057069 * cos(5.21649804970 + 0.52126486180 * Tau)
|
||||
+ 0.00000035368 * cos(4.51676827540 + 74.78159856700 * Tau)
|
||||
+ 0.00000032216 * cos(5.90411489680 + 77.75054398400 * Tau)
|
||||
+ 0.00000029871 * cos(3.67043294110 + 388.46515524000 * Tau)
|
||||
+ 0.00000028866 * cos(5.16877529160 + 9.56122755560 * Tau)
|
||||
+ 0.00000028742 * cos(5.16732589020 + 2.44768055480 * Tau)
|
||||
+ 0.00000025507 * cos(5.24526281930 + 168.05251280000 * Tau);
|
||||
|
||||
L2 := 0.00053892649 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000295693 * cos(1.85520292250 + 1.48447270830 * Tau)
|
||||
+ 0.00000281251 * cos(1.19084538890 + 38.13303563800 * Tau)
|
||||
+ 0.00000270190 * cos(5.72143228150 + 76.26607127600 * Tau)
|
||||
+ 0.00000023023 * cos(1.21035596450 + 2.96894541660 * Tau)
|
||||
+ 0.00000009057 * cos(4.42544992040 + 35.16409022100 * Tau)
|
||||
+ 0.00000007333 * cos(0.54033306830 + 2.44768055480 * Tau);
|
||||
|
||||
L3 := 0.00000031254 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000014541 * cos(1.35337075860 + 76.26607127600 * Tau)
|
||||
+ 0.00000012461 * cos(6.04431418810 + 1.48447270830 * Tau)
|
||||
+ 0.00000011547 * cos(6.11257808370 + 38.13303563800 * Tau);
|
||||
|
||||
L4 := 0.00000113998 * cos(3.14159265360 + 0.00000000000 * Tau);
|
||||
|
||||
L5 := 0.00000000000;
|
||||
Result := (L0 + L1*Tau + L2*Tau2 + L3*Tau3 + L4*Tau4 + L5*Tau5);
|
||||
end;
|
||||
|
||||
{---------------------------------------------------------------------------}
|
||||
|
||||
function GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
B0, B1,
|
||||
B2, B3,
|
||||
B4, B5 : Double;
|
||||
begin
|
||||
B0 := 0.03088622933 * cos(1.44104372630 + 38.13303563800 * Tau)
|
||||
+ 0.00027780087 * cos(5.91271882840 + 76.26607127600 * Tau)
|
||||
+ 0.00027623609 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00015448133 * cos(3.50877080890 + 39.61750834600 * Tau)
|
||||
+ 0.00015355490 * cos(2.52123799480 + 36.64856292900 * Tau)
|
||||
+ 0.00001999919 * cos(1.50998669500 + 74.78159856700 * Tau)
|
||||
+ 0.00001967540 * cos(4.37778195770 + 1.48447270830 * Tau)
|
||||
+ 0.00001015137 * cos(3.21561035880 + 35.16409022100 * Tau)
|
||||
+ 0.00000605767 * cos(2.80246601410 + 73.29712585900 * Tau)
|
||||
+ 0.00000594878 * cos(2.12892708110 + 41.10198105400 * Tau)
|
||||
+ 0.00000588805 * cos(3.18655882500 + 2.96894541660 * Tau)
|
||||
+ 0.00000401830 * cos(4.16883287240 + 114.39910691000 * Tau)
|
||||
+ 0.00000279964 * cos(1.68165309700 + 77.75054398400 * Tau)
|
||||
+ 0.00000261647 * cos(3.76722704750 + 213.29909544000 * Tau)
|
||||
+ 0.00000254333 * cos(3.27120499440 + 453.42489382000 * Tau)
|
||||
+ 0.00000205590 * cos(4.25652348860 + 529.69096509000 * Tau)
|
||||
+ 0.00000140455 * cos(3.52969556380 + 137.03302416000 * Tau);
|
||||
|
||||
B1 := 0.00227279214 * cos(3.80793089870 + 38.13303563800 * Tau)
|
||||
+ 0.00001803120 * cos(1.97576485380 + 76.26607127600 * Tau)
|
||||
+ 0.00001433300 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00001385733 * cos(4.82555548020 + 36.64856292900 * Tau)
|
||||
+ 0.00001073298 * cos(6.08054240710 + 39.61750834600 * Tau)
|
||||
+ 0.00000147903 * cos(3.85766231350 + 74.78159856700 * Tau)
|
||||
+ 0.00000136448 * cos(0.47764957338 + 1.48447270830 * Tau)
|
||||
+ 0.00000070285 * cos(6.18782052140 + 35.16409022100 * Tau)
|
||||
+ 0.00000051899 * cos(5.05221791890 + 73.29712585900 * Tau)
|
||||
+ 0.00000042568 * cos(0.30721737205 + 114.39910691000 * Tau)
|
||||
+ 0.00000037273 * cos(4.89476629250 + 41.10198105400 * Tau)
|
||||
+ 0.00000037104 * cos(5.75999349110 + 2.96894541660 * Tau)
|
||||
+ 0.00000026399 * cos(5.21566335940 + 213.29909544000 * Tau);
|
||||
|
||||
B2 := 0.00009690766 * cos(5.57123750290 + 38.13303563800 * Tau)
|
||||
+ 0.00000078815 * cos(3.62705474220 + 76.26607127600 * Tau)
|
||||
+ 0.00000071523 * cos(0.45476688580 + 36.64856292900 * Tau)
|
||||
+ 0.00000058646 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000029915 * cos(1.60671721860 + 39.61750834600 * Tau)
|
||||
+ 0.00000006472 * cos(5.60736756580 + 74.78159856700 * Tau);
|
||||
|
||||
B3 := 0.00000273423 * cos(1.01688979070 + 38.13303563800 * Tau)
|
||||
+ 0.00000002393 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000002274 * cos(2.36805657130 + 36.64856292900 * Tau)
|
||||
+ 0.00000002029 * cos(5.33364321340 + 76.26607127600 * Tau);
|
||||
|
||||
B4 := 0.00000005728 * cos(2.66872693320 + 38.13303563800 * Tau);
|
||||
|
||||
B5 := 0.00000000000;
|
||||
Result := (B0 + B1*Tau + B2*Tau2 + B3*Tau3 + B4*Tau4 + B5*Tau5);
|
||||
end;
|
||||
|
||||
{---------------------------------------------------------------------------}
|
||||
|
||||
function GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
R0, R1,
|
||||
R2, R3,
|
||||
R4, R5 : Double;
|
||||
begin
|
||||
R0 := 30.07013206100 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.27062259490 * cos(1.32999458930 + 38.13303563800 * Tau)
|
||||
+ 0.01691764281 * cos(3.25186138900 + 36.64856292900 * Tau)
|
||||
+ 0.00807830737 * cos(5.18592836170 + 1.48447270830 * Tau)
|
||||
+ 0.00537760613 * cos(4.52113902850 + 35.16409022100 * Tau)
|
||||
+ 0.00495725642 * cos(1.57105654810 + 491.55792946000 * Tau)
|
||||
+ 0.00274571970 * cos(1.84552256800 + 175.16605980000 * Tau)
|
||||
+ 0.00135134095 * cos(3.37220607380 + 39.61750834600 * Tau)
|
||||
+ 0.00121801825 * cos(5.79754444300 + 76.26607127600 * Tau)
|
||||
+ 0.00100895397 * cos(0.37702748681 + 73.29712585900 * Tau)
|
||||
+ 0.00069791722 * cos(3.79617226930 + 2.96894541660 * Tau)
|
||||
+ 0.00046687838 * cos(5.74937810090 + 33.67961751300 * Tau)
|
||||
+ 0.00024593778 * cos(0.50801728204 + 109.94568879000 * Tau)
|
||||
+ 0.00016939242 * cos(1.59422166990 + 71.81265315100 * Tau)
|
||||
+ 0.00014229686 * cos(1.07786112900 + 74.78159856700 * Tau)
|
||||
+ 0.00012011825 * cos(1.92062131640 + 1021.24889460000 * Tau)
|
||||
+ 0.00008394731 * cos(0.67816895547 + 146.59425172000 * Tau)
|
||||
+ 0.00007571800 * cos(1.07149263430 + 388.46515524000 * Tau)
|
||||
+ 0.00005720852 * cos(2.59059512270 + 4.45341812490 * Tau)
|
||||
+ 0.00004839672 * cos(1.90685991070 + 41.10198105400 * Tau)
|
||||
+ 0.00004483492 * cos(2.90573457530 + 529.69096509000 * Tau)
|
||||
+ 0.00004420804 * cos(1.74993796500 + 108.46121608000 * Tau)
|
||||
+ 0.00004353790 * cos(0.67985662370 + 32.19514480500 * Tau)
|
||||
+ 0.00004270202 * cos(3.41343865820 + 453.42489382000 * Tau)
|
||||
+ 0.00003380930 * cos(0.84810683275 + 183.24281465000 * Tau)
|
||||
+ 0.00002881063 * cos(1.98600105120 + 137.03302416000 * Tau)
|
||||
+ 0.00002878942 * cos(3.67415901850 + 350.33211960000 * Tau)
|
||||
+ 0.00002635535 * cos(3.09755943420 + 213.29909544000 * Tau)
|
||||
+ 0.00002530149 * cos(5.79839567010 + 490.07345675000 * Tau)
|
||||
+ 0.00002523132 * cos(0.48630800015 + 493.04240217000 * Tau)
|
||||
+ 0.00002306293 * cos(2.80962935720 + 70.32818044200 * Tau)
|
||||
+ 0.00002087303 * cos(0.61858378281 + 33.94024994400 * Tau);
|
||||
|
||||
R1 := 0.00236338502 * cos(0.70498011235 + 38.13303563800 * Tau)
|
||||
+ 0.00013220279 * cos(3.32015499890 + 1.48447270830 * Tau)
|
||||
+ 0.00008621863 * cos(6.21628951630 + 35.16409022100 * Tau)
|
||||
+ 0.00002701740 * cos(1.88140666780 + 39.61750834600 * Tau)
|
||||
+ 0.00002154735 * cos(2.09431198090 + 2.96894541660 * Tau)
|
||||
+ 0.00002153150 * cos(5.16873840980 + 76.26607127600 * Tau)
|
||||
+ 0.00001603165 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00001463924 * cos(1.18417031050 + 33.67961751300 * Tau)
|
||||
+ 0.00001135773 * cos(3.91891199650 + 36.64856292900 * Tau)
|
||||
+ 0.00000897650 * cos(5.24122933530 + 388.46515524000 * Tau)
|
||||
+ 0.00000789908 * cos(0.53315484580 + 168.05251280000 * Tau)
|
||||
+ 0.00000760030 * cos(0.02051033644 + 182.27960680000 * Tau)
|
||||
+ 0.00000607183 * cos(1.07706500350 + 1021.24889460000 * Tau)
|
||||
+ 0.00000571622 * cos(3.40060785430 + 484.44438246000 * Tau)
|
||||
+ 0.00000560790 * cos(2.88685815670 + 498.67147646000 * Tau);
|
||||
|
||||
R2 := 0.00004247412 * cos(5.89910679120 + 38.13303563800 * Tau)
|
||||
+ 0.00000217570 * cos(0.34581829080 + 1.48447270830 * Tau)
|
||||
+ 0.00000163025 * cos(2.23872947130 + 168.05251280000 * Tau)
|
||||
+ 0.00000156285 * cos(4.59414467340 + 182.27960680000 * Tau)
|
||||
+ 0.00000127141 * cos(2.84786298080 + 35.16409022100 * Tau);
|
||||
|
||||
R3 := 0.00000166297 * cos(4.55243893490 + 38.13303563800 * Tau);
|
||||
|
||||
R4 := 0.00000000000;
|
||||
|
||||
R5 := 0.00000000000;
|
||||
Result := (R0 + R1*Tau + R2*Tau2 + R3*Tau3 + R4*Tau4 + R5*Tau5);
|
||||
end;
|
||||
|
||||
{---------------------------------------------------------------------------}
|
||||
|
||||
function ComputeNeptune(JD : Double) : TStEclipticalCord;
|
||||
var
|
||||
Tau,
|
||||
Tau2,
|
||||
Tau3,
|
||||
Tau4,
|
||||
Tau5 : Double;
|
||||
begin
|
||||
Tau := (JD - 2451545.0) / 365250.0;
|
||||
Tau2 := sqr(Tau);
|
||||
Tau3 := Tau * Tau2;
|
||||
Tau4 := sqr(Tau2);
|
||||
Tau5 := Tau2 * Tau3;
|
||||
|
||||
Result.L0 := GetLongitude(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
Result.B0 := GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
Result.R0 := GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
end;
|
||||
|
||||
|
||||
end.
|
202
components/systools/source/run/stpluto.pas
Normal file
202
components/systools/source/run/stpluto.pas
Normal file
@ -0,0 +1,202 @@
|
||||
// Upgraded to Delphi 2009: Sebastian Zierer
|
||||
|
||||
(* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is TurboPower SysTools
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* TurboPower Software
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 1996-2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** *)
|
||||
|
||||
{*********************************************************}
|
||||
{* SysTools: StPluto.pas 4.04 *}
|
||||
{*********************************************************}
|
||||
{* SysTools: Astronomical Routines (for Pluto) *}
|
||||
{*********************************************************}
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
//{$I StDefine.inc}
|
||||
|
||||
unit StPluto;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
StAstroP, StMath;
|
||||
|
||||
function ComputePluto(JD : Double) : TStEclipticalCord;
|
||||
|
||||
implementation
|
||||
|
||||
function ComputePluto(JD : Double) : TStEclipticalCord;
|
||||
var
|
||||
T,
|
||||
J, S, P,
|
||||
L,
|
||||
B,
|
||||
R : Double;
|
||||
begin
|
||||
T := (JD - 2451545.0) / 36525.0;
|
||||
J := ( 34.35 + 3034.9057 * T) / radcor;
|
||||
S := ( 50.08 + 1222.1138 * T) / radcor;
|
||||
P := (238.96 + 144.9600 * T) / radcor;
|
||||
|
||||
L :=
|
||||
- 19798886 * sin(P) + 19848454 * cos(P)
|
||||
+ 897499 * sin(2*P) - 4955707 * cos(2*P)
|
||||
+ 610820 * sin(3*P) + 1210521 * cos(3*P)
|
||||
- 341639 * sin(4*P) - 189719 * cos(4*P)
|
||||
+ 129027 * sin(5*P) - 34863 * cos(5*P)
|
||||
- 38215 * sin(6*P) + 31061 * cos(6*P)
|
||||
+ 20349 * sin(S-P) - 9886 * cos(S-P)
|
||||
- 4045 * sin(S) - 4904 * cos(S)
|
||||
- 5885 * sin(S+P) - 3238 * cos(S+P)
|
||||
- 3812 * sin(S+2*P) + 3011 * cos(s+2*P)
|
||||
- 601 * sin(S+3*P) + 3468 * cos(S+3*P)
|
||||
+ 1237 * sin(2*(S-P)) + 463 * cos(2*(S-P))
|
||||
+ 1086 * sin(2*S-P) - 911 * cos(2*S-P)
|
||||
+ 595 * sin(2*S) - 1229 * cos(2*S)
|
||||
+ 2484 * sin(J-S) - 485 * cos(J-S)
|
||||
+ 839 * sin(J-S+P) - 1414 * cos(J-S+P)
|
||||
- 964 * sin(J-3*P) + 1059 * cos(J-3*P)
|
||||
- 2303 * sin(J-2*P) - 1038 * cos(J-2*P)
|
||||
+ 7049 * sin(J-P) + 747 * cos(J-P)
|
||||
+ 1179 * sin(J) - 358 * cos(J)
|
||||
+ 393 * sin(J+P) - 63 * cos(J+P)
|
||||
+ 111 * sin(J+2*P) - 268 * cos(J+2*P)
|
||||
- 52 * sin(J+3*P) - 154 * cos(J+3*P)
|
||||
- 78 * sin(J+4*P) - 30 * cos(J+4*P)
|
||||
- 34 * sin(J+S-3*P) - 26 * cos(J+S-3*P)
|
||||
- 43 * sin(J+S-2*P) + 1 * cos(J+S-2*P)
|
||||
- 15 * sin(J+S-P) + 21 * cos(J+S-P)
|
||||
- 1 * sin(J+S) + 15 * cos(J+S)
|
||||
+ 4 * sin(J+S+P) + 7 * cos(J+S+P)
|
||||
+ 1 * sin(J+S+3*P) + 5 * cos(J+S+3*P)
|
||||
+ 8 * sin(2*J-6*P) + 3 * cos(2*J-6*P)
|
||||
- 3 * sin(2*J-5*P) + 6 * cos(2*J-5*P)
|
||||
+ 6 * sin(2*J-4*P) - 13 * cos(2*J-4*P)
|
||||
+ 10 * sin(2*J-3*P) + 22 * cos(2*J-3*P)
|
||||
- 57 * sin(2*J-2*P) - 32 * cos(2*J-2*P)
|
||||
+ 157 * sin(2*J-P) - 46 * cos(2*J-P)
|
||||
+ 12 * sin(2*J) - 18 * cos(2*J)
|
||||
- 4 * sin(2*J-P) + 8 * cos(2*J-P)
|
||||
- 5 * sin(2*(J+P)) + 0 * sin(2*(J+P))
|
||||
+ 3 * sin(2*J+3*P) + 4 * cos(2*J+3*P)
|
||||
- 1 * sin(3*J-2*P) - 1 * cos(3*J-2*P)
|
||||
+ 6 * sin(3*J-P) - 3 * cos(3*J-P)
|
||||
- 1 * sin(3*J) - 2 * cos(3*J);
|
||||
Result.L0 := (238.956785 + 144.96*T + (L/1000000)) / radcor;
|
||||
|
||||
B := -5453098 * sin(P) - 14974876 * cos(P)
|
||||
+ 3527363 * sin(2*P) + 1672673 * cos(2*P)
|
||||
- 1050939 * sin(3*P) + 327763 * cos(3*P)
|
||||
+ 178691 * sin(4*P) - 291925 * cos(4*P)
|
||||
+ 18763 * sin(5*P) + 100448 * cos(5*P)
|
||||
- 30594 * sin(6*P) - 25838 * cos(6*P)
|
||||
+ 4965 * sin(S-P) + 11263 * cos(S-P)
|
||||
+ 310 * sin(S) - 132 * cos(S)
|
||||
+ 2036 * sin(S+P) - 947 * cos(S+P)
|
||||
- 2 * sin(S+2*P) - 674 * cos(S+2*P)
|
||||
- 329 * sin(S+3*P) - 563 * cos(S+3*P)
|
||||
- 64 * sin(2*(S-P)) + 39 * cos(2*(S-P))
|
||||
- 94 * sin(2*S-P) + 210 * cos(2*S-P)
|
||||
- 8 * sin(2*S) - 160 * cos(2*S)
|
||||
+ 177 * sin(J-S) + 259 * cos(J-S)
|
||||
+ 17 * sin(J-S+P) + 234 * cos(J-S+P)
|
||||
+ 582 * sin(J-3*P) - 285 * cos(J-3*P)
|
||||
- 298 * sin(J-2*P) + 692 * cos(J-2*P)
|
||||
+ 157 * sin(J-P) + 201 * cos(J-P)
|
||||
+ 304 * sin(J) + 825 * cos(J)
|
||||
- 124 * sin(J+P) - 29 * cos(J+P)
|
||||
+ 15 * sin(J+2*P) + 8 * cos(J+2*P)
|
||||
+ 7 * sin(J+3*P) + 15 * cos(J+3*P)
|
||||
+ 2 * sin(J+4*P) + 2 * cos(J+4*P)
|
||||
+ 4 * sin(J+S-3*P) + 2 * cos(J+S-3*P)
|
||||
+ 3 * sin(J+S-2*P) + 0 * cos(J+S-2*P)
|
||||
+ 1 * sin(J+S-P) - 1 * cos(J+S-P)
|
||||
+ 0 * sin(J+S) - 2 * cos(J+S)
|
||||
+ 1 * sin(J+S+P) - 0 * cos(J+S+P)
|
||||
+ 1 * sin(J+S+3*P) - 1 * cos(J+S+3*P)
|
||||
- 2 * sin(2*J-6*P) - 3 * cos(2*J-6*P)
|
||||
+ 1 * sin(2*J-5*P) + 2 * cos(2*J-5*P)
|
||||
- 8 * sin(2*J-4*P) + 2 * cos(2*J-4*P)
|
||||
+ 10 * sin(2*J-3*P) - 7 * cos(2*J-3*P)
|
||||
+ 0 * sin(2*J-2*P) + 21 * cos(2*J-2*P)
|
||||
+ 8 * sin(2*J-P) + 5 * cos(2*J-P)
|
||||
+ 13 * sin(2*J) + 16 * cos(2*J)
|
||||
- 2 * sin(2*J-P) - 3 * cos(2*J-P)
|
||||
+ 0 * sin(2*(J+P)) + 0 * cos(2*(J+P))
|
||||
+ 0 * sin(2*J+3*P) + 1 * cos(2*J+3*P)
|
||||
+ 0 * sin(3*J-2*P) + 1 * cos(3*J-2*P)
|
||||
+ 0 * sin(3*J-P) + 0 * cos(3*J-P)
|
||||
+ 0 * sin(3*J) + 1 * cos(3*J);
|
||||
Result.B0 := (-3.908202 + B/1000000) / radcor;
|
||||
|
||||
R := 66867334 * sin(P) + 68955876 * cos(P)
|
||||
- 11826086 * sin(2*P) - 333765 * cos(2*P)
|
||||
+ 1593657 * sin(3*P) - 1439953 * cos(3*P)
|
||||
- 18948 * sin(4*P) + 482443 * cos(4*P)
|
||||
- 66634 * sin(5*P) - 85576 * cos(5*P)
|
||||
+ 30841 * sin(6*P) - 5765 * cos(6*P)
|
||||
- 6140 * sin(S-P) + 22254 * cos(S-P)
|
||||
+ 4434 * sin(S) + 4443 * cos(S)
|
||||
- 1518 * sin(S+P) + 641 * cos(S+P)
|
||||
- 5 * sin(S+2*P) + 792 * cos(s+2*P)
|
||||
+ 518 * sin(S+3*P) + 518 * cos(S+3*P)
|
||||
- 13 * sin(2*(S-P)) - 221 * cos(2*(S-P))
|
||||
+ 837 * sin(2*S-P) - 494 * cos(2*S-P)
|
||||
- 281 * sin(2*S) + 616 * cos(2*S)
|
||||
+ 260 * sin(J-S) - 395 * cos(J-S)
|
||||
- 191 * sin(J-S+P) - 396 * cos(J-S+P)
|
||||
- 3218 * sin(J-3*P) + 370 * cos(J-3*P)
|
||||
+ 8019 * sin(J-2*P) - 7689 * cos(J-2*P)
|
||||
+ 105 * sin(J-P) + 45637 * cos(J-P)
|
||||
+ 8623 * sin(J) + 8444 * cos(J)
|
||||
- 896 * sin(J+P) - 801 * cos(J+P)
|
||||
+ 208 * sin(J+2*P) - 122 * cos(J+2*P)
|
||||
- 133 * sin(J+3*P) + 65 * cos(J+3*P)
|
||||
- 16 * sin(J+4*P) + 1 * cos(J+4*P)
|
||||
- 22 * sin(J+S-3*P) + 7 * cos(J+S-3*P)
|
||||
- 8 * sin(J+S-2*P) + 16 * cos(J+S-2*P)
|
||||
+ 2 * sin(J+S-P) + 9 * cos(J+S-P)
|
||||
+ 12 * sin(J+S) + 5 * cos(J+S)
|
||||
+ 1 * sin(J+S+P) - 3 * cos(J+S+P)
|
||||
+ 1 * sin(J+S+3*P) + 0 * cos(J+S+3*P)
|
||||
+ 9 * sin(2*J-6*P) + 5 * cos(2*J-6*P)
|
||||
+ 2 * sin(2*J-5*P) - 1 * cos(2*J-5*P)
|
||||
+ 14 * sin(2*J-4*P) + 10 * cos(2*J-4*P)
|
||||
- 65 * sin(2*J-3*P) + 12 * cos(2*J-3*P)
|
||||
+ 126 * sin(2*J-2*P) - 233 * cos(2*J-2*P)
|
||||
+ 270 * sin(2*J-P) + 1068 * cos(2*J-P)
|
||||
+ 254 * sin(2*J) + 155 * cos(2*J)
|
||||
- 26 * sin(2*J-P) - 2 * cos(2*J-P)
|
||||
+ 7 * sin(2*(J+P)) + 0 * cos(2*(J+P))
|
||||
- 11 * sin(2*J+3*P) + 4 * cos(2*J+3*P)
|
||||
+ 4 * sin(3*J-2*P) - 14 * cos(3*J-2*P)
|
||||
+ 18 * sin(3*J-P) + 35 * cos(3*J-P)
|
||||
+ 13 * sin(3*J) + 3 * cos(3*J);
|
||||
Result.R0 := 40.7247248 + R / 10000000;
|
||||
end;
|
||||
|
||||
|
||||
end.
|
744
components/systools/source/run/stsaturn.pas
Normal file
744
components/systools/source/run/stsaturn.pas
Normal file
@ -0,0 +1,744 @@
|
||||
// Upgraded to Delphi 2009: Sebastian Zierer
|
||||
|
||||
(* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is TurboPower SysTools
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* TurboPower Software
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 1996-2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** *)
|
||||
|
||||
{*********************************************************}
|
||||
{* SysTools: StSaturn.pas 4.04 *}
|
||||
{*********************************************************}
|
||||
{* SysTools: Astronomical Routines (for Saturn) *}
|
||||
{*********************************************************}
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
//{$I StDefine.inc}
|
||||
|
||||
unit StSaturn;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
StAstroP;
|
||||
|
||||
function ComputeSaturn(JD : Double) : TStEclipticalCord;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
function GetLongitude(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
L0, L1,
|
||||
L2, L3,
|
||||
L4, L5 : Double;
|
||||
begin
|
||||
L0 := 0.87401354029 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.11107659780 * cos(3.96205090190 + 213.29909544000 * Tau)
|
||||
+ 0.01414150958 * cos(4.58581515870 + 7.11354700080 * Tau)
|
||||
+ 0.00398379386 * cos(0.52112025957 + 206.18554844000 * Tau)
|
||||
+ 0.00350769223 * cos(3.30329903020 + 426.59819088000 * Tau)
|
||||
+ 0.00206816296 * cos(0.24658366938 + 103.09277422000 * Tau)
|
||||
+ 0.00079271288 * cos(3.84007078530 + 220.41264244000 * Tau)
|
||||
+ 0.00023990338 * cos(4.66976934860 + 110.20632122000 * Tau)
|
||||
+ 0.00016573583 * cos(0.43719123541 + 419.48464388000 * Tau)
|
||||
+ 0.00015820300 * cos(0.93808953760 + 632.78373931000 * Tau)
|
||||
+ 0.00015053509 * cos(2.71670027880 + 639.89728631000 * Tau)
|
||||
+ 0.00014906995 * cos(5.76903283840 + 316.39186966000 * Tau)
|
||||
+ 0.00014609562 * cos(1.56518573690 + 3.93215326310 * Tau)
|
||||
+ 0.00013160308 * cos(4.44891180180 + 14.22709400200 * Tau)
|
||||
+ 0.00013005305 * cos(5.98119067060 + 11.04570026400 * Tau)
|
||||
+ 0.00010725066 * cos(3.12939596470 + 202.25339517000 * Tau)
|
||||
+ 0.00006126308 * cos(1.76328499660 + 277.03499374000 * Tau)
|
||||
+ 0.00005863207 * cos(0.23657028777 + 529.69096509000 * Tau)
|
||||
+ 0.00005227771 * cos(4.20783162380 + 3.18139373770 * Tau)
|
||||
+ 0.00005019658 * cos(3.17787919530 + 433.71173788000 * Tau)
|
||||
+ 0.00004592541 * cos(0.61976424374 + 199.07200144000 * Tau)
|
||||
+ 0.00004005862 * cos(2.24479893940 + 63.73589830300 * Tau)
|
||||
+ 0.00003873696 * cos(3.22282692570 + 138.51749687000 * Tau)
|
||||
+ 0.00003269490 * cos(0.77491895787 + 949.17560897000 * Tau)
|
||||
+ 0.00002953815 * cos(0.98280385206 + 95.97922721800 * Tau)
|
||||
+ 0.00002461172 * cos(2.03163631210 + 735.87651353000 * Tau)
|
||||
+ 0.00001758143 * cos(3.26580514770 + 522.57741809000 * Tau)
|
||||
+ 0.00001640183 * cos(5.50504966220 + 846.08283475000 * Tau)
|
||||
+ 0.00001580641 * cos(4.37266314120 + 309.27832266000 * Tau)
|
||||
+ 0.00001391336 * cos(4.02331978120 + 323.50541666000 * Tau)
|
||||
+ 0.00001123515 * cos(2.83726793570 + 415.55249061000 * Tau)
|
||||
+ 0.00001087237 * cos(4.18343232480 + 2.44768055480 * Tau)
|
||||
+ 0.00001017258 * cos(3.71698151810 + 227.52618944000 * Tau)
|
||||
+ 0.00000956752 * cos(0.50740889886 + 1265.56747860000 * Tau)
|
||||
+ 0.00000852677 * cos(3.42141350700 + 175.16605980000 * Tau)
|
||||
+ 0.00000848643 * cos(3.19149825840 + 209.36694217000 * Tau)
|
||||
+ 0.00000789205 * cos(5.00745123150 + 0.96320784650 * Tau)
|
||||
+ 0.00000748811 * cos(2.14398149300 + 853.19638175000 * Tau)
|
||||
+ 0.00000743584 * cos(5.25276954620 + 224.34479570000 * Tau)
|
||||
+ 0.00000686965 * cos(1.74714407830 + 1052.26838320000 * Tau)
|
||||
+ 0.00000654470 * cos(1.59889331510 + 0.04818410980 * Tau)
|
||||
+ 0.00000633980 * cos(2.29889903020 + 412.37109687000 * Tau)
|
||||
+ 0.00000624904 * cos(0.97046831256 + 210.11770170000 * Tau)
|
||||
+ 0.00000579857 * cos(3.09259007050 + 74.78159856700 * Tau)
|
||||
+ 0.00000546358 * cos(2.12678554210 + 350.33211960000 * Tau)
|
||||
+ 0.00000542643 * cos(1.51824320510 + 9.56122755560 * Tau)
|
||||
+ 0.00000529861 * cos(4.44938897120 + 117.31986822000 * Tau)
|
||||
+ 0.00000478054 * cos(2.96488054340 + 137.03302416000 * Tau)
|
||||
+ 0.00000474279 * cos(5.47527185990 + 742.99006053000 * Tau)
|
||||
+ 0.00000451827 * cos(1.04436664240 + 490.33408918000 * Tau)
|
||||
+ 0.00000448542 * cos(1.28990416160 + 127.47179661000 * Tau)
|
||||
+ 0.00000372308 * cos(2.27819108630 + 217.23124870000 * Tau)
|
||||
+ 0.00000354944 * cos(3.01286483030 + 838.96928775000 * Tau)
|
||||
+ 0.00000347413 * cos(1.53928227760 + 340.77089205000 * Tau)
|
||||
+ 0.00000343475 * cos(0.24604039134 + 0.52126486180 * Tau)
|
||||
+ 0.00000330196 * cos(0.24715617844 + 1581.95934830000 * Tau)
|
||||
+ 0.00000322185 * cos(0.96137456104 + 203.73786788000 * Tau)
|
||||
+ 0.00000321543 * cos(2.57182354540 + 647.01083331000 * Tau)
|
||||
+ 0.00000309001 * cos(3.49486734910 + 216.48048918000 * Tau)
|
||||
+ 0.00000286688 * cos(2.37043745860 + 351.81659231000 * Tau)
|
||||
+ 0.00000277775 * cos(0.40020408926 + 211.81462273000 * Tau)
|
||||
+ 0.00000249116 * cos(1.47010534420 + 1368.66025280000 * Tau)
|
||||
+ 0.00000226609 * cos(4.91003163140 + 12.53017297200 * Tau)
|
||||
+ 0.00000220225 * cos(4.20422424870 + 200.76892247000 * Tau)
|
||||
+ 0.00000208655 * cos(1.34516255300 + 625.67019231000 * Tau)
|
||||
+ 0.00000207663 * cos(0.48349820488 + 1162.47470440000 * Tau)
|
||||
+ 0.00000207659 * cos(1.28302218900 + 39.35687591500 * Tau)
|
||||
+ 0.00000204500 * cos(6.01082206600 + 265.98929348000 * Tau)
|
||||
+ 0.00000184690 * cos(3.50344404960 + 149.56319713000 * Tau)
|
||||
+ 0.00000183511 * cos(0.97254952728 + 4.19278569400 * Tau)
|
||||
+ 0.00000182454 * cos(5.49122292430 + 2.92076130680 * Tau)
|
||||
+ 0.00000173914 * cos(1.86305806810 + 0.75075952540 * Tau)
|
||||
+ 0.00000164541 * cos(0.44005517520 + 5.41662597140 * Tau)
|
||||
+ 0.00000149299 * cos(5.73594349790 + 52.69019803900 * Tau)
|
||||
+ 0.00000147526 * cos(1.53529320510 + 5.62907429250 * Tau)
|
||||
+ 0.00000146068 * cos(6.23102544070 + 195.13984817000 * Tau)
|
||||
+ 0.00000139666 * cos(4.29450260070 + 21.34064100200 * Tau)
|
||||
+ 0.00000131283 * cos(4.06828961900 + 10.29494073800 * Tau)
|
||||
+ 0.00000124969 * cos(6.27737805830 + 1898.35121790000 * Tau)
|
||||
+ 0.00000122373 * cos(1.97588777200 + 4.66586644600 * Tau)
|
||||
+ 0.00000118156 * cos(5.34072933900 + 554.06998748000 * Tau)
|
||||
+ 0.00000117283 * cos(2.67920400580 + 1155.36115740000 * Tau)
|
||||
+ 0.00000113747 * cos(5.59427544710 + 1059.38193020000 * Tau)
|
||||
+ 0.00000112437 * cos(1.10502663530 + 191.20769491000 * Tau)
|
||||
+ 0.00000110399 * cos(0.16604024090 + 1.48447270830 * Tau)
|
||||
+ 0.00000109275 * cos(3.43812715690 + 536.80451210000 * Tau)
|
||||
+ 0.00000106570 * cos(4.01156608510 + 956.28915597000 * Tau)
|
||||
+ 0.00000103956 * cos(2.19210363070 + 88.86568021700 * Tau)
|
||||
+ 0.00000102702 * cos(1.19748124060 + 1685.05212250000 * Tau)
|
||||
+ 0.00000100631 * cos(4.96513666540 + 269.92144674000 * Tau);
|
||||
|
||||
L1 := 213.54295596000 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.01296855005 * cos(1.82820544700 + 213.29909544000 * Tau)
|
||||
+ 0.00564347566 * cos(2.88500136430 + 7.11354700080 * Tau)
|
||||
+ 0.00107678770 * cos(2.27769911870 + 206.18554844000 * Tau)
|
||||
+ 0.00098323030 * cos(1.08070061330 + 426.59819088000 * Tau)
|
||||
+ 0.00040254586 * cos(2.04128257090 + 220.41264244000 * Tau)
|
||||
+ 0.00019941734 * cos(1.27954662740 + 103.09277422000 * Tau)
|
||||
+ 0.00010511706 * cos(2.74880392800 + 14.22709400200 * Tau)
|
||||
+ 0.00006939233 * cos(0.40493079985 + 639.89728631000 * Tau)
|
||||
+ 0.00004803325 * cos(2.44194097670 + 419.48464388000 * Tau)
|
||||
+ 0.00004056325 * cos(2.92166618780 + 110.20632122000 * Tau)
|
||||
+ 0.00003768630 * cos(3.64965631460 + 3.93215326310 * Tau)
|
||||
+ 0.00003384684 * cos(2.41694251650 + 3.18139373770 * Tau)
|
||||
+ 0.00003302200 * cos(1.26256486710 + 433.71173788000 * Tau)
|
||||
+ 0.00003071382 * cos(2.32739317750 + 199.07200144000 * Tau)
|
||||
+ 0.00001953036 * cos(3.56394683300 + 11.04570026400 * Tau)
|
||||
+ 0.00001249348 * cos(2.62803737520 + 95.97922721800 * Tau)
|
||||
+ 0.00000921683 * cos(1.96089834250 + 227.52618944000 * Tau)
|
||||
+ 0.00000705587 * cos(4.41689249330 + 529.69096509000 * Tau)
|
||||
+ 0.00000649654 * cos(6.17418093660 + 202.25339517000 * Tau)
|
||||
+ 0.00000627603 * cos(6.11088227170 + 309.27832266000 * Tau)
|
||||
+ 0.00000486843 * cos(6.03998200310 + 853.19638175000 * Tau)
|
||||
+ 0.00000478501 * cos(4.98776987980 + 522.57741809000 * Tau)
|
||||
+ 0.00000468377 * cos(4.61707843910 + 63.73589830300 * Tau)
|
||||
+ 0.00000417010 * cos(2.11708169280 + 323.50541666000 * Tau)
|
||||
+ 0.00000407630 * cos(1.29949556680 + 209.36694217000 * Tau)
|
||||
+ 0.00000352489 * cos(2.31707079460 + 632.78373931000 * Tau)
|
||||
+ 0.00000343826 * cos(3.95854178570 + 412.37109687000 * Tau)
|
||||
+ 0.00000339724 * cos(3.63396398750 + 316.39186966000 * Tau)
|
||||
+ 0.00000335936 * cos(3.77173072710 + 735.87651353000 * Tau)
|
||||
+ 0.00000331933 * cos(2.86077699880 + 210.11770170000 * Tau)
|
||||
+ 0.00000289429 * cos(2.73263080240 + 117.31986822000 * Tau)
|
||||
+ 0.00000280911 * cos(5.74398845420 + 2.44768055480 * Tau)
|
||||
+ 0.00000265801 * cos(0.54344631312 + 647.01083331000 * Tau)
|
||||
+ 0.00000230493 * cos(1.64428879620 + 216.48048918000 * Tau)
|
||||
+ 0.00000191667 * cos(2.96512946580 + 224.34479570000 * Tau)
|
||||
+ 0.00000172891 * cos(4.07695221040 + 846.08283475000 * Tau)
|
||||
+ 0.00000167131 * cos(2.59745202660 + 21.34064100200 * Tau)
|
||||
+ 0.00000136328 * cos(2.28580246630 + 10.29494073800 * Tau)
|
||||
+ 0.00000131364 * cos(3.44108355650 + 742.99006053000 * Tau)
|
||||
+ 0.00000127838 * cos(4.09533471250 + 217.23124870000 * Tau)
|
||||
+ 0.00000108862 * cos(6.16141072260 + 415.55249061000 * Tau)
|
||||
+ 0.00000097584 * cos(4.72845436680 + 838.96928775000 * Tau)
|
||||
+ 0.00000093909 * cos(3.48397279900 + 1052.26838320000 * Tau)
|
||||
+ 0.00000092482 * cos(3.94755499930 + 88.86568021700 * Tau)
|
||||
+ 0.00000086600 * cos(1.21951325060 + 440.82528488000 * Tau)
|
||||
+ 0.00000083463 * cos(3.11269504720 + 625.67019231000 * Tau)
|
||||
+ 0.00000077588 * cos(6.24408938830 + 302.16477566000 * Tau)
|
||||
+ 0.00000067106 * cos(0.28961738595 + 4.66586644600 * Tau)
|
||||
+ 0.00000065843 * cos(5.64757042730 + 9.56122755560 * Tau)
|
||||
+ 0.00000061900 * cos(4.29344363380 + 127.47179661000 * Tau)
|
||||
+ 0.00000061557 * cos(1.82789612600 + 195.13984817000 * Tau)
|
||||
+ 0.00000057780 * cos(2.47630552040 + 191.95845444000 * Tau)
|
||||
+ 0.00000056919 * cos(5.01889578110 + 137.03302416000 * Tau)
|
||||
+ 0.00000054585 * cos(0.28356341456 + 74.78159856700 * Tau)
|
||||
+ 0.00000054160 * cos(5.12628572380 + 490.33408918000 * Tau)
|
||||
+ 0.00000051425 * cos(1.45766406060 + 536.80451210000 * Tau)
|
||||
+ 0.00000046799 * cos(1.17721211050 + 149.56319713000 * Tau)
|
||||
+ 0.00000046649 * cos(5.14818326900 + 515.46387109000 * Tau)
|
||||
+ 0.00000045891 * cos(2.23198878760 + 956.28915597000 * Tau)
|
||||
+ 0.00000044444 * cos(2.70873627670 + 5.41662597140 * Tau)
|
||||
+ 0.00000040400 * cos(0.41281520440 + 269.92144674000 * Tau)
|
||||
+ 0.00000040380 * cos(3.88870105680 + 728.76296653000 * Tau)
|
||||
+ 0.00000037969 * cos(0.64665967180 + 422.66603761000 * Tau)
|
||||
+ 0.00000037768 * cos(2.53379013860 + 12.53017297200 * Tau)
|
||||
+ 0.00000037191 * cos(3.78239026410 + 2.92076130680 * Tau)
|
||||
+ 0.00000035116 * cos(6.08421794090 + 5.62907429250 * Tau)
|
||||
+ 0.00000033778 * cos(3.21070688050 + 1368.66025280000 * Tau)
|
||||
+ 0.00000033217 * cos(4.64063092110 + 277.03499374000 * Tau)
|
||||
+ 0.00000033050 * cos(5.43038091190 + 1066.49547720000 * Tau)
|
||||
+ 0.00000032857 * cos(0.30063884563 + 351.81659231000 * Tau)
|
||||
+ 0.00000031876 * cos(4.38622923770 + 1155.36115740000 * Tau)
|
||||
+ 0.00000031329 * cos(2.43455855530 + 52.69019803900 * Tau)
|
||||
+ 0.00000030276 * cos(2.84067004930 + 203.00415470000 * Tau)
|
||||
+ 0.00000030089 * cos(6.18684614310 + 284.14854074000 * Tau)
|
||||
+ 0.00000029667 * cos(3.39052569130 + 1059.38193020000 * Tau)
|
||||
+ 0.00000028913 * cos(2.02614760510 + 330.61896366000 * Tau)
|
||||
+ 0.00000028264 * cos(2.74178954000 + 265.98929348000 * Tau)
|
||||
+ 0.00000026493 * cos(4.51214170120 + 340.77089205000 * Tau);
|
||||
|
||||
L2 := 0.00116441181 * cos(1.17987850630 + 7.11354700080 * Tau)
|
||||
+ 0.00091920844 * cos(0.07425261094 + 213.29909544000 * Tau)
|
||||
+ 0.00090592251 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00015276909 * cos(4.06492007500 + 206.18554844000 * Tau)
|
||||
+ 0.00010631396 * cos(0.25778277414 + 220.41264244000 * Tau)
|
||||
+ 0.00010604979 * cos(5.40963595890 + 426.59819088000 * Tau)
|
||||
+ 0.00004265368 * cos(1.04595556630 + 14.22709400200 * Tau)
|
||||
+ 0.00001215527 * cos(2.91860042120 + 103.09277422000 * Tau)
|
||||
+ 0.00001164684 * cos(4.60942128970 + 639.89728631000 * Tau)
|
||||
+ 0.00001081967 * cos(5.69130351670 + 433.71173788000 * Tau)
|
||||
+ 0.00001044754 * cos(4.04206453610 + 199.07200144000 * Tau)
|
||||
+ 0.00001020079 * cos(0.63369182642 + 3.18139373770 * Tau)
|
||||
+ 0.00000633582 * cos(4.38825410040 + 419.48464388000 * Tau)
|
||||
+ 0.00000549329 * cos(5.57303134240 + 3.93215326310 * Tau)
|
||||
+ 0.00000456914 * cos(1.26840971350 + 110.20632122000 * Tau)
|
||||
+ 0.00000425100 * cos(0.20935499279 + 227.52618944000 * Tau)
|
||||
+ 0.00000273739 * cos(4.28841011780 + 95.97922721800 * Tau)
|
||||
+ 0.00000161571 * cos(1.38139149420 + 11.04570026400 * Tau)
|
||||
+ 0.00000129494 * cos(1.56586884170 + 309.27832266000 * Tau)
|
||||
+ 0.00000117008 * cos(3.88120915960 + 853.19638175000 * Tau)
|
||||
+ 0.00000105415 * cos(4.90003203600 + 647.01083331000 * Tau)
|
||||
+ 0.00000100967 * cos(0.89270493100 + 21.34064100200 * Tau)
|
||||
+ 0.00000095659 * cos(2.91093561540 + 316.39186966000 * Tau)
|
||||
+ 0.00000095227 * cos(5.62561150600 + 412.37109687000 * Tau)
|
||||
+ 0.00000084860 * cos(5.73472777960 + 209.36694217000 * Tau)
|
||||
+ 0.00000082727 * cos(6.05030934790 + 216.48048918000 * Tau)
|
||||
+ 0.00000081948 * cos(1.02477558310 + 117.31986822000 * Tau)
|
||||
+ 0.00000074857 * cos(4.76178468160 + 210.11770170000 * Tau)
|
||||
+ 0.00000067184 * cos(0.45648612616 + 522.57741809000 * Tau)
|
||||
+ 0.00000066459 * cos(0.48297940601 + 10.29494073800 * Tau)
|
||||
+ 0.00000063696 * cos(0.35179804917 + 323.50541666000 * Tau)
|
||||
+ 0.00000060647 * cos(4.87517850190 + 632.78373931000 * Tau)
|
||||
+ 0.00000053281 * cos(2.74730541390 + 529.69096509000 * Tau)
|
||||
+ 0.00000045827 * cos(5.69296621750 + 440.82528488000 * Tau)
|
||||
+ 0.00000045293 * cos(1.66856699800 + 202.25339517000 * Tau)
|
||||
+ 0.00000042330 * cos(5.70768187700 + 88.86568021700 * Tau)
|
||||
+ 0.00000032140 * cos(0.07050050346 + 63.73589830300 * Tau)
|
||||
+ 0.00000031573 * cos(1.67190022210 + 302.16477566000 * Tau)
|
||||
+ 0.00000031150 * cos(4.16379537690 + 191.95845444000 * Tau)
|
||||
+ 0.00000026558 * cos(0.83256214407 + 224.34479570000 * Tau)
|
||||
+ 0.00000024631 * cos(5.65564728570 + 735.87651353000 * Tau)
|
||||
+ 0.00000020108 * cos(5.94364609980 + 217.23124870000 * Tau)
|
||||
+ 0.00000017511 * cos(4.90014736800 + 625.67019231000 * Tau)
|
||||
+ 0.00000017130 * cos(1.62593421270 + 742.99006053000 * Tau)
|
||||
+ 0.00000016040 * cos(0.57886320845 + 515.46387109000 * Tau)
|
||||
+ 0.00000014068 * cos(0.20675293700 + 838.96928775000 * Tau)
|
||||
+ 0.00000013744 * cos(3.76497167300 + 195.13984817000 * Tau)
|
||||
+ 0.00000012236 * cos(4.71789723980 + 203.00415470000 * Tau)
|
||||
+ 0.00000011940 * cos(0.12620714199 + 234.63973644000 * Tau)
|
||||
+ 0.00000011718 * cos(3.12098483550 + 846.08283475000 * Tau)
|
||||
+ 0.00000011154 * cos(5.92216844780 + 536.80451210000 * Tau)
|
||||
+ 0.00000011013 * cos(5.60207982770 + 728.76296653000 * Tau)
|
||||
+ 0.00000010601 * cos(3.20327613030 + 1066.49547720000 * Tau)
|
||||
+ 0.00000010240 * cos(4.98736656070 + 422.66603761000 * Tau)
|
||||
+ 0.00000010072 * cos(0.25709351996 + 330.61896366000 * Tau)
|
||||
+ 0.00000009962 * cos(4.15472049130 + 860.30992875000 * Tau)
|
||||
+ 0.00000009490 * cos(0.46379969328 + 956.28915597000 * Tau)
|
||||
+ 0.00000008287 * cos(2.13990364270 + 269.92144674000 * Tau)
|
||||
+ 0.00000007730 * cos(5.24602742310 + 429.77958461000 * Tau)
|
||||
+ 0.00000007550 * cos(4.03401153930 + 9.56122755560 * Tau)
|
||||
+ 0.00000007238 * cos(5.39724715260 + 1052.26838320000 * Tau)
|
||||
+ 0.00000006353 * cos(4.46211130730 + 284.14854074000 * Tau)
|
||||
+ 0.00000006082 * cos(5.93416924840 + 405.25754987000 * Tau);
|
||||
|
||||
L3 := 0.00016038734 * cos(5.73945377420 + 7.11354700080 * Tau)
|
||||
+ 0.00004249793 * cos(4.58539675600 + 213.29909544000 * Tau)
|
||||
+ 0.00001906524 * cos(4.76082050210 + 220.41264244000 * Tau)
|
||||
+ 0.00001465687 * cos(5.91326678320 + 206.18554844000 * Tau)
|
||||
+ 0.00001162041 * cos(5.61973132430 + 14.22709400200 * Tau)
|
||||
+ 0.00001066581 * cos(3.60816533140 + 426.59819088000 * Tau)
|
||||
+ 0.00000239377 * cos(3.86088273440 + 433.71173788000 * Tau)
|
||||
+ 0.00000236975 * cos(5.76826451460 + 199.07200144000 * Tau)
|
||||
+ 0.00000165641 * cos(5.11641150220 + 3.18139373770 * Tau)
|
||||
+ 0.00000151352 * cos(2.73594641860 + 639.89728631000 * Tau)
|
||||
+ 0.00000131409 * cos(4.74327544610 + 227.52618944000 * Tau)
|
||||
+ 0.00000063365 * cos(0.22850089497 + 419.48464388000 * Tau)
|
||||
+ 0.00000061630 * cos(4.74287052460 + 103.09277422000 * Tau)
|
||||
+ 0.00000040437 * cos(5.47298059140 + 21.34064100200 * Tau)
|
||||
+ 0.00000040205 * cos(5.96420266720 + 95.97922721800 * Tau)
|
||||
+ 0.00000038746 * cos(5.83386199530 + 110.20632122000 * Tau)
|
||||
+ 0.00000028025 * cos(3.01235311510 + 647.01083331000 * Tau)
|
||||
+ 0.00000025029 * cos(0.98808170740 + 3.93215326310 * Tau)
|
||||
+ 0.00000019014 * cos(1.91614237460 + 853.19638175000 * Tau)
|
||||
+ 0.00000018262 * cos(4.96738415930 + 10.29494073800 * Tau)
|
||||
+ 0.00000018101 * cos(1.02506397060 + 412.37109687000 * Tau)
|
||||
+ 0.00000017919 * cos(4.20376505350 + 216.48048918000 * Tau)
|
||||
+ 0.00000017879 * cos(3.31913418970 + 309.27832266000 * Tau)
|
||||
+ 0.00000016208 * cos(3.89825272750 + 440.82528488000 * Tau)
|
||||
+ 0.00000015763 * cos(5.61667809630 + 117.31986822000 * Tau)
|
||||
+ 0.00000012947 * cos(1.18068953940 + 88.86568021700 * Tau)
|
||||
+ 0.00000011453 * cos(5.57520615100 + 11.04570026400 * Tau)
|
||||
+ 0.00000010548 * cos(5.92906266270 + 191.95845444000 * Tau)
|
||||
+ 0.00000010389 * cos(3.94838736950 + 209.36694217000 * Tau)
|
||||
+ 0.00000008650 * cos(3.39335369700 + 302.16477566000 * Tau)
|
||||
+ 0.00000007580 * cos(4.87736913160 + 323.50541666000 * Tau)
|
||||
+ 0.00000006697 * cos(0.38198725552 + 632.78373931000 * Tau)
|
||||
+ 0.00000006327 * cos(2.25492722760 + 522.57741809000 * Tau)
|
||||
+ 0.00000005864 * cos(1.05621157680 + 210.11770170000 * Tau)
|
||||
+ 0.00000005449 * cos(4.64268475490 + 234.63973644000 * Tau)
|
||||
+ 0.00000003701 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000003602 * cos(2.30677010960 + 515.46387109000 * Tau)
|
||||
+ 0.00000003229 * cos(2.20309400070 + 860.30992875000 * Tau)
|
||||
+ 0.00000002850 * cos(0.58604395010 + 529.69096509000 * Tau)
|
||||
+ 0.00000002583 * cos(4.93447677060 + 224.34479570000 * Tau)
|
||||
+ 0.00000002543 * cos(0.42393884183 + 625.67019231000 * Tau)
|
||||
+ 0.00000002421 * cos(4.76621391810 + 330.61896366000 * Tau)
|
||||
+ 0.00000002296 * cos(3.34809165900 + 429.77958461000 * Tau)
|
||||
+ 0.00000002213 * cos(3.19814958290 + 202.25339517000 * Tau)
|
||||
+ 0.00000002194 * cos(1.18918501010 + 1066.49547720000 * Tau)
|
||||
+ 0.00000002154 * cos(1.35488209140 + 405.25754987000 * Tau)
|
||||
+ 0.00000002090 * cos(4.15631351320 + 223.59403618000 * Tau)
|
||||
+ 0.00000002018 * cos(3.06693569700 + 654.12438032000 * Tau);
|
||||
|
||||
L4 := 0.00001661894 * cos(3.99826248980 + 7.11354700080 * Tau)
|
||||
+ 0.00000257107 * cos(2.98436499010 + 220.41264244000 * Tau)
|
||||
+ 0.00000236344 * cos(3.90241428080 + 14.22709400200 * Tau)
|
||||
+ 0.00000149418 * cos(2.74110824210 + 213.29909544000 * Tau)
|
||||
+ 0.00000113953 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000109598 * cos(1.51515739250 + 206.18554844000 * Tau)
|
||||
+ 0.00000068390 * cos(1.72120953340 + 426.59819088000 * Tau)
|
||||
+ 0.00000040060 * cos(2.04644897410 + 433.71173788000 * Tau)
|
||||
+ 0.00000037699 * cos(1.23795458360 + 199.07200144000 * Tau)
|
||||
+ 0.00000031219 * cos(3.01094184090 + 227.52618944000 * Tau)
|
||||
+ 0.00000015111 * cos(0.82897064529 + 639.89728631000 * Tau)
|
||||
+ 0.00000009444 * cos(3.71485300870 + 21.34064100200 * Tau)
|
||||
+ 0.00000005690 * cos(2.41995290630 + 419.48464388000 * Tau)
|
||||
+ 0.00000005608 * cos(1.15607095740 + 647.01083331000 * Tau)
|
||||
+ 0.00000004470 * cos(1.45120818750 + 95.97922721800 * Tau)
|
||||
+ 0.00000004463 * cos(2.11783225180 + 440.82528488000 * Tau)
|
||||
+ 0.00000003229 * cos(4.09278077830 + 110.20632122000 * Tau)
|
||||
+ 0.00000002871 * cos(2.77203153870 + 412.37109687000 * Tau)
|
||||
+ 0.00000002796 * cos(3.00730249560 + 88.86568021700 * Tau)
|
||||
+ 0.00000002638 * cos(0.00255721254 + 853.19638175000 * Tau)
|
||||
+ 0.00000002574 * cos(0.39246854091 + 103.09277422000 * Tau)
|
||||
+ 0.00000002225 * cos(3.77689198140 + 117.31986822000 * Tau);
|
||||
|
||||
L5 := 0.00000123615 * cos(2.25923345730 + 7.11354700080 * Tau)
|
||||
+ 0.00000034190 * cos(2.16250652690 + 14.22709400200 * Tau)
|
||||
+ 0.00000027546 * cos(1.19868150220 + 220.41264244000 * Tau)
|
||||
+ 0.00000005818 * cos(1.21584270180 + 227.52618944000 * Tau)
|
||||
+ 0.00000005318 * cos(0.23550400093 + 433.71173788000 * Tau)
|
||||
+ 0.00000003677 * cos(6.22669694360 + 426.59819088000 * Tau)
|
||||
+ 0.00000003057 * cos(2.97372046320 + 199.07200144000 * Tau)
|
||||
+ 0.00000002861 * cos(4.28710932680 + 206.18554844000 * Tau);
|
||||
|
||||
Result := (L0 + L1*Tau + L2*Tau2 + L3*Tau3 + L4*Tau4 + L5*Tau5);
|
||||
end;
|
||||
|
||||
{---------------------------------------------------------------------------}
|
||||
|
||||
function GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
B0, B1,
|
||||
B2, B3,
|
||||
B4, B5 : Double;
|
||||
begin
|
||||
B0 := 0.04330678040 * cos(3.60284428400 + 213.29909544000 * Tau)
|
||||
+ 0.00240348303 * cos(2.85238489390 + 426.59819088000 * Tau)
|
||||
+ 0.00084745939 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00034116063 * cos(0.57297307844 + 206.18554844000 * Tau)
|
||||
+ 0.00030863357 * cos(3.48441504470 + 220.41264244000 * Tau)
|
||||
+ 0.00014734070 * cos(2.11846597870 + 639.89728631000 * Tau)
|
||||
+ 0.00009916668 * cos(5.79003189410 + 419.48464388000 * Tau)
|
||||
+ 0.00006993564 * cos(4.73604689180 + 7.11354700080 * Tau)
|
||||
+ 0.00004807587 * cos(5.43305315600 + 316.39186966000 * Tau)
|
||||
+ 0.00004788392 * cos(4.96512927420 + 110.20632122000 * Tau)
|
||||
+ 0.00003432125 * cos(2.73255752120 + 433.71173788000 * Tau)
|
||||
+ 0.00001506129 * cos(6.01304536140 + 103.09277422000 * Tau)
|
||||
+ 0.00001060298 * cos(5.63099292410 + 529.69096509000 * Tau)
|
||||
+ 0.00000969071 * cos(5.20434966100 + 632.78373931000 * Tau)
|
||||
+ 0.00000942050 * cos(1.39646678090 + 853.19638175000 * Tau)
|
||||
+ 0.00000707645 * cos(3.80302329550 + 323.50541666000 * Tau)
|
||||
+ 0.00000552313 * cos(5.13149109040 + 202.25339517000 * Tau)
|
||||
+ 0.00000399675 * cos(3.35891413960 + 227.52618944000 * Tau)
|
||||
+ 0.00000319380 * cos(3.62571550980 + 209.36694217000 * Tau)
|
||||
+ 0.00000316063 * cos(1.99716764200 + 647.01083331000 * Tau)
|
||||
+ 0.00000314225 * cos(0.46510272410 + 217.23124870000 * Tau)
|
||||
+ 0.00000284494 * cos(4.88648481620 + 224.34479570000 * Tau)
|
||||
+ 0.00000236442 * cos(2.13887472280 + 11.04570026400 * Tau)
|
||||
+ 0.00000215354 * cos(5.94982610100 + 846.08283475000 * Tau)
|
||||
+ 0.00000208522 * cos(2.12003893770 + 415.55249061000 * Tau)
|
||||
+ 0.00000207213 * cos(0.73021462851 + 199.07200144000 * Tau)
|
||||
+ 0.00000178958 * cos(2.95361514670 + 63.73589830300 * Tau)
|
||||
+ 0.00000140585 * cos(0.64417620299 + 490.33408918000 * Tau)
|
||||
+ 0.00000139240 * cos(4.59535168020 + 14.22709400200 * Tau)
|
||||
+ 0.00000139140 * cos(1.99821990940 + 735.87651353000 * Tau)
|
||||
+ 0.00000134884 * cos(5.24500819600 + 742.99006053000 * Tau)
|
||||
+ 0.00000121669 * cos(3.11537140880 + 522.57741809000 * Tau)
|
||||
+ 0.00000115524 * cos(3.10891547170 + 216.48048918000 * Tau)
|
||||
+ 0.00000114218 * cos(0.96261442133 + 210.11770170000 * Tau);
|
||||
|
||||
B1 := 0.00397554998 * cos(5.33289992560 + 213.29909544000 * Tau)
|
||||
+ 0.00049478641 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00018571607 * cos(6.09919206380 + 426.59819088000 * Tau)
|
||||
+ 0.00014800587 * cos(2.30586060520 + 206.18554844000 * Tau)
|
||||
+ 0.00009643981 * cos(1.69674660120 + 220.41264244000 * Tau)
|
||||
+ 0.00003757161 * cos(1.25429514020 + 419.48464388000 * Tau)
|
||||
+ 0.00002716647 * cos(5.91166664790 + 639.89728631000 * Tau)
|
||||
+ 0.00001455309 * cos(0.85161616532 + 433.71173788000 * Tau)
|
||||
+ 0.00001290595 * cos(2.91770857090 + 7.11354700080 * Tau)
|
||||
+ 0.00000852630 * cos(0.43572078997 + 316.39186966000 * Tau)
|
||||
+ 0.00000297726 * cos(0.91909206723 + 632.78373931000 * Tau)
|
||||
+ 0.00000292185 * cos(5.31574251270 + 853.19638175000 * Tau)
|
||||
+ 0.00000284386 * cos(1.61881754770 + 227.52618944000 * Tau)
|
||||
+ 0.00000275090 * cos(3.88864137340 + 103.09277422000 * Tau)
|
||||
+ 0.00000172359 * cos(0.05215146556 + 647.01083331000 * Tau)
|
||||
+ 0.00000166237 * cos(2.44351613170 + 199.07200144000 * Tau)
|
||||
+ 0.00000158220 * cos(5.20850125770 + 110.20632122000 * Tau)
|
||||
+ 0.00000127731 * cos(1.20711452530 + 529.69096509000 * Tau)
|
||||
+ 0.00000109839 * cos(2.45695551630 + 217.23124870000 * Tau)
|
||||
+ 0.00000081759 * cos(2.75839171350 + 210.11770170000 * Tau)
|
||||
+ 0.00000081010 * cos(2.86038377190 + 14.22709400200 * Tau)
|
||||
+ 0.00000068658 * cos(1.65537623150 + 202.25339517000 * Tau)
|
||||
+ 0.00000065161 * cos(1.25527521310 + 216.48048918000 * Tau)
|
||||
+ 0.00000061024 * cos(1.25273412090 + 209.36694217000 * Tau)
|
||||
+ 0.00000059281 * cos(1.82410768230 + 323.50541666000 * Tau)
|
||||
+ 0.00000046386 * cos(0.81534705304 + 440.82528488000 * Tau)
|
||||
+ 0.00000036163 * cos(1.81851057690 + 224.34479570000 * Tau)
|
||||
+ 0.00000034041 * cos(2.83971298000 + 117.31986822000 * Tau)
|
||||
+ 0.00000033114 * cos(1.30557080010 + 412.37109687000 * Tau)
|
||||
+ 0.00000032164 * cos(1.18676132340 + 846.08283475000 * Tau)
|
||||
+ 0.00000027282 * cos(4.64744847590 + 1066.49547720000 * Tau)
|
||||
+ 0.00000027128 * cos(4.44228739190 + 11.04570026400 * Tau);
|
||||
|
||||
B2 := 0.00020629977 * cos(0.50482422817 + 213.29909544000 * Tau)
|
||||
+ 0.00003719555 * cos(3.99833475830 + 206.18554844000 * Tau)
|
||||
+ 0.00001627158 * cos(6.18189939500 + 220.41264244000 * Tau)
|
||||
+ 0.00001346067 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000705842 * cos(3.03914308840 + 419.48464388000 * Tau)
|
||||
+ 0.00000365042 * cos(5.09928680710 + 426.59819088000 * Tau)
|
||||
+ 0.00000329632 * cos(5.27899210040 + 433.71173788000 * Tau)
|
||||
+ 0.00000219335 * cos(3.82841533790 + 639.89728631000 * Tau)
|
||||
+ 0.00000139393 * cos(1.04272623500 + 7.11354700080 * Tau)
|
||||
+ 0.00000103980 * cos(6.15730992970 + 227.52618944000 * Tau)
|
||||
+ 0.00000092961 * cos(1.97994412850 + 316.39186966000 * Tau)
|
||||
+ 0.00000071242 * cos(4.14754353430 + 199.07200144000 * Tau)
|
||||
+ 0.00000051927 * cos(2.88364833900 + 632.78373931000 * Tau)
|
||||
+ 0.00000048961 * cos(4.43390206740 + 647.01083331000 * Tau)
|
||||
+ 0.00000041373 * cos(3.15927770080 + 853.19638175000 * Tau)
|
||||
+ 0.00000028602 * cos(4.52978327560 + 210.11770170000 * Tau)
|
||||
+ 0.00000023969 * cos(1.11595912150 + 14.22709400200 * Tau)
|
||||
+ 0.00000020511 * cos(4.35095844200 + 217.23124870000 * Tau)
|
||||
+ 0.00000019532 * cos(5.30779711220 + 440.82528488000 * Tau)
|
||||
+ 0.00000018263 * cos(0.85391476786 + 110.20632122000 * Tau)
|
||||
+ 0.00000016840 * cos(5.68112084130 + 216.48048918000 * Tau)
|
||||
+ 0.00000015742 * cos(4.25767226300 + 103.09277422000 * Tau)
|
||||
+ 0.00000013613 * cos(2.99904334070 + 412.37109687000 * Tau)
|
||||
+ 0.00000011567 * cos(2.52679928410 + 529.69096509000 * Tau)
|
||||
+ 0.00000007963 * cos(3.31512423920 + 202.25339517000 * Tau)
|
||||
+ 0.00000006648 * cos(5.55714129950 + 209.36694217000 * Tau)
|
||||
+ 0.00000006599 * cos(0.28766025146 + 323.50541666000 * Tau)
|
||||
+ 0.00000006312 * cos(1.16121321340 + 117.31986822000 * Tau)
|
||||
+ 0.00000006192 * cos(3.61231886520 + 860.30992875000 * Tau);
|
||||
|
||||
B3 := 0.00000666252 * cos(1.99006340180 + 213.29909544000 * Tau)
|
||||
+ 0.00000632350 * cos(5.69778316810 + 206.18554844000 * Tau)
|
||||
+ 0.00000398051 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000187838 * cos(4.33779804810 + 220.41264244000 * Tau)
|
||||
+ 0.00000091884 * cos(4.84104208220 + 419.48464388000 * Tau)
|
||||
+ 0.00000051548 * cos(3.42149490330 + 433.71173788000 * Tau)
|
||||
+ 0.00000042369 * cos(2.38073239060 + 426.59819088000 * Tau)
|
||||
+ 0.00000025661 * cos(4.40167213110 + 227.52618944000 * Tau)
|
||||
+ 0.00000020551 * cos(5.85313509870 + 199.07200144000 * Tau)
|
||||
+ 0.00000018081 * cos(1.99321433230 + 639.89728631000 * Tau)
|
||||
+ 0.00000010874 * cos(5.37344546550 + 7.11354700080 * Tau)
|
||||
+ 0.00000009590 * cos(2.54901825870 + 647.01083331000 * Tau)
|
||||
+ 0.00000007085 * cos(3.45518372720 + 316.39186966000 * Tau)
|
||||
+ 0.00000006002 * cos(4.80055225130 + 632.78373931000 * Tau)
|
||||
+ 0.00000005778 * cos(0.01680378777 + 210.11770170000 * Tau)
|
||||
+ 0.00000005542 * cos(3.51756747770 + 440.82528488000 * Tau)
|
||||
+ 0.00000004881 * cos(5.63719730880 + 14.22709400200 * Tau)
|
||||
+ 0.00000004501 * cos(1.22424419010 + 853.19638175000 * Tau)
|
||||
+ 0.00000003548 * cos(4.71299370890 + 412.37109687000 * Tau)
|
||||
+ 0.00000002851 * cos(0.62679207578 + 103.09277422000 * Tau)
|
||||
+ 0.00000002173 * cos(3.71982274460 + 216.48048918000 * Tau);
|
||||
|
||||
B4 := 0.00000080384 * cos(1.11918414680 + 206.18554844000 * Tau)
|
||||
+ 0.00000031660 * cos(3.12218745100 + 213.29909544000 * Tau)
|
||||
+ 0.00000017143 * cos(2.48073200410 + 220.41264244000 * Tau)
|
||||
+ 0.00000011844 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000009005 * cos(0.38441424927 + 419.48464388000 * Tau)
|
||||
+ 0.00000006164 * cos(1.56186379540 + 433.71173788000 * Tau)
|
||||
+ 0.00000004775 * cos(2.63498295490 + 227.52618944000 * Tau)
|
||||
+ 0.00000004660 * cos(1.28235639570 + 199.07200144000 * Tau)
|
||||
+ 0.00000001487 * cos(1.43096671620 + 426.59819088000 * Tau)
|
||||
+ 0.00000001424 * cos(0.66988083613 + 647.01083331000 * Tau)
|
||||
+ 0.00000001145 * cos(1.72041928130 + 440.82528488000 * Tau)
|
||||
+ 0.00000001075 * cos(6.18092274060 + 639.89728631000 * Tau);
|
||||
|
||||
B5 := 0.00000007895 * cos(2.81927558650 + 206.18554844000 * Tau)
|
||||
+ 0.00000001014 * cos(0.51187210270 + 220.41264244000 * Tau);
|
||||
Result := (B0 + B1*Tau + B2*Tau2 + B3*Tau3 + B4*Tau4 + B5*Tau5);
|
||||
end;
|
||||
|
||||
{---------------------------------------------------------------------------}
|
||||
|
||||
function GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
R0, R1,
|
||||
R2, R3,
|
||||
R4, R5 : Double;
|
||||
begin
|
||||
R0 := 9.55758135800 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.52921382465 * cos(2.39226219730 + 213.29909544000 * Tau)
|
||||
+ 0.01873679934 * cos(5.23549605090 + 206.18554844000 * Tau)
|
||||
+ 0.01464663959 * cos(1.64763045470 + 426.59819088000 * Tau)
|
||||
+ 0.00821891059 * cos(5.93520025370 + 316.39186966000 * Tau)
|
||||
+ 0.00547506899 * cos(5.01532628450 + 103.09277422000 * Tau)
|
||||
+ 0.00371684449 * cos(2.27114833430 + 220.41264244000 * Tau)
|
||||
+ 0.00361778433 * cos(3.13904303260 + 7.11354700080 * Tau)
|
||||
+ 0.00140617548 * cos(5.70406652990 + 632.78373931000 * Tau)
|
||||
+ 0.00108974737 * cos(3.29313595580 + 110.20632122000 * Tau)
|
||||
+ 0.00069007015 * cos(5.94099622450 + 419.48464388000 * Tau)
|
||||
+ 0.00061053350 * cos(0.94037761156 + 639.89728631000 * Tau)
|
||||
+ 0.00048913044 * cos(1.55733388470 + 202.25339517000 * Tau)
|
||||
+ 0.00034143794 * cos(0.19518550682 + 277.03499374000 * Tau)
|
||||
+ 0.00032401718 * cos(5.47084606950 + 949.17560897000 * Tau)
|
||||
+ 0.00020936573 * cos(0.46349163993 + 735.87651353000 * Tau)
|
||||
+ 0.00020839118 * cos(1.52102590640 + 433.71173788000 * Tau)
|
||||
+ 0.00020746678 * cos(5.33255667600 + 199.07200144000 * Tau)
|
||||
+ 0.00015298457 * cos(3.05943652880 + 529.69096509000 * Tau)
|
||||
+ 0.00014296479 * cos(2.60433537910 + 323.50541666000 * Tau)
|
||||
+ 0.00012884128 * cos(1.64892310390 + 138.51749687000 * Tau)
|
||||
+ 0.00011993314 * cos(5.98051421880 + 846.08283475000 * Tau)
|
||||
+ 0.00011380261 * cos(1.73105746570 + 522.57741809000 * Tau)
|
||||
+ 0.00009796061 * cos(5.20475864000 + 1265.56747860000 * Tau)
|
||||
+ 0.00007752769 * cos(5.85191318900 + 95.97922721800 * Tau)
|
||||
+ 0.00006770621 * cos(3.00433479280 + 14.22709400200 * Tau)
|
||||
+ 0.00006465967 * cos(0.17733160145 + 1052.26838320000 * Tau)
|
||||
+ 0.00005850443 * cos(1.45519636080 + 415.55249061000 * Tau)
|
||||
+ 0.00005307481 * cos(0.59737534050 + 63.73589830300 * Tau)
|
||||
+ 0.00004695746 * cos(2.14919036960 + 227.52618944000 * Tau)
|
||||
+ 0.00004043988 * cos(1.64010323860 + 209.36694217000 * Tau)
|
||||
+ 0.00003688132 * cos(0.78016133170 + 412.37109687000 * Tau)
|
||||
+ 0.00003460943 * cos(1.85088802880 + 175.16605980000 * Tau)
|
||||
+ 0.00003419551 * cos(4.94549148890 + 1581.95934830000 * Tau)
|
||||
+ 0.00003400616 * cos(0.55386747515 + 350.33211960000 * Tau)
|
||||
+ 0.00003376457 * cos(3.69528478830 + 224.34479570000 * Tau)
|
||||
+ 0.00002976033 * cos(5.68467931120 + 210.11770170000 * Tau)
|
||||
+ 0.00002885348 * cos(1.38764077630 + 838.96928775000 * Tau)
|
||||
+ 0.00002881181 * cos(0.17960757891 + 853.19638175000 * Tau)
|
||||
+ 0.00002507630 * cos(3.53851863260 + 742.99006053000 * Tau)
|
||||
+ 0.00002448325 * cos(6.18412386320 + 1368.66025280000 * Tau)
|
||||
+ 0.00002406138 * cos(2.96559220270 + 117.31986822000 * Tau)
|
||||
+ 0.00002173959 * cos(0.01508587396 + 340.77089205000 * Tau)
|
||||
+ 0.00002024483 * cos(5.05411271270 + 11.04570026400 * Tau);
|
||||
|
||||
R1 := 0.06182981282 * cos(0.25843515034 + 213.29909544000 * Tau)
|
||||
+ 0.00506577574 * cos(0.71114650941 + 206.18554844000 * Tau)
|
||||
+ 0.00341394136 * cos(5.79635773960 + 426.59819088000 * Tau)
|
||||
+ 0.00188491375 * cos(0.47215719444 + 220.41264244000 * Tau)
|
||||
+ 0.00186261540 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00143891176 * cos(1.40744864240 + 7.11354700080 * Tau)
|
||||
+ 0.00049621111 * cos(6.01744469580 + 103.09277422000 * Tau)
|
||||
+ 0.00020928189 * cos(5.09245654470 + 639.89728631000 * Tau)
|
||||
+ 0.00019952612 * cos(1.17560125010 + 419.48464388000 * Tau)
|
||||
+ 0.00018839639 * cos(1.60819563170 + 110.20632122000 * Tau)
|
||||
+ 0.00013876565 * cos(0.75886204364 + 199.07200144000 * Tau)
|
||||
+ 0.00012892827 * cos(5.94330258430 + 433.71173788000 * Tau)
|
||||
+ 0.00005396699 * cos(1.28852405910 + 14.22709400200 * Tau)
|
||||
+ 0.00004869308 * cos(0.86793894213 + 323.50541666000 * Tau)
|
||||
+ 0.00004247455 * cos(0.39299384543 + 227.52618944000 * Tau)
|
||||
+ 0.00003252084 * cos(1.25853470490 + 95.97922721800 * Tau)
|
||||
+ 0.00003081408 * cos(3.43662557420 + 522.57741809000 * Tau)
|
||||
+ 0.00002909411 * cos(4.60679154790 + 202.25339517000 * Tau)
|
||||
+ 0.00002856006 * cos(2.16731405370 + 735.87651353000 * Tau)
|
||||
+ 0.00001987689 * cos(2.45054204800 + 412.37109687000 * Tau)
|
||||
+ 0.00001941309 * cos(6.02393385140 + 209.36694217000 * Tau)
|
||||
+ 0.00001581446 * cos(1.29191789710 + 210.11770170000 * Tau)
|
||||
+ 0.00001339511 * cos(4.30801821810 + 853.19638175000 * Tau)
|
||||
+ 0.00001315590 * cos(1.25296446020 + 117.31986822000 * Tau)
|
||||
+ 0.00001203085 * cos(1.86654673790 + 316.39186966000 * Tau)
|
||||
+ 0.00001091088 * cos(0.07527246854 + 216.48048918000 * Tau)
|
||||
+ 0.00000966012 * cos(0.47991379141 + 632.78373931000 * Tau)
|
||||
+ 0.00000954403 * cos(5.15173410520 + 647.01083331000 * Tau)
|
||||
+ 0.00000897512 * cos(0.98343776092 + 529.69096509000 * Tau)
|
||||
+ 0.00000881827 * cos(1.88471724480 + 1052.26838320000 * Tau)
|
||||
+ 0.00000874215 * cos(1.40224683860 + 224.34479570000 * Tau)
|
||||
+ 0.00000784866 * cos(3.06377517460 + 838.96928775000 * Tau)
|
||||
+ 0.00000739892 * cos(1.38225356690 + 625.67019231000 * Tau)
|
||||
+ 0.00000658210 * cos(4.14362930980 + 309.27832266000 * Tau)
|
||||
+ 0.00000649600 * cos(1.72489486160 + 742.99006053000 * Tau)
|
||||
+ 0.00000612961 * cos(3.03307306770 + 63.73589830300 * Tau)
|
||||
+ 0.00000599236 * cos(2.54924174760 + 217.23124870000 * Tau)
|
||||
+ 0.00000502886 * cos(2.12958819480 + 3.93215326310 * Tau);
|
||||
|
||||
R2 := 0.00436902464 * cos(4.78671673040 + 213.29909544000 * Tau)
|
||||
+ 0.00071922760 * cos(2.50069994870 + 206.18554844000 * Tau)
|
||||
+ 0.00049766792 * cos(4.97168150870 + 220.41264244000 * Tau)
|
||||
+ 0.00043220894 * cos(3.86940443790 + 426.59819088000 * Tau)
|
||||
+ 0.00029645554 * cos(5.96310264280 + 7.11354700080 * Tau)
|
||||
+ 0.00004720909 * cos(2.47527992420 + 199.07200144000 * Tau)
|
||||
+ 0.00004141650 * cos(4.10670940820 + 433.71173788000 * Tau)
|
||||
+ 0.00003789370 * cos(3.09771025070 + 639.89728631000 * Tau)
|
||||
+ 0.00002963990 * cos(1.37206248850 + 103.09277422000 * Tau)
|
||||
+ 0.00002556363 * cos(2.85065721530 + 419.48464388000 * Tau)
|
||||
+ 0.00002326801 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00002208457 * cos(6.27588858710 + 110.20632122000 * Tau)
|
||||
+ 0.00002187621 * cos(5.85545832220 + 14.22709400200 * Tau)
|
||||
+ 0.00001956896 * cos(4.92448618040 + 227.52618944000 * Tau)
|
||||
+ 0.00000923840 * cos(5.46392422740 + 323.50541666000 * Tau)
|
||||
+ 0.00000705936 * cos(2.97081280100 + 95.97922721800 * Tau)
|
||||
+ 0.00000546115 * cos(4.12854181520 + 412.37109687000 * Tau)
|
||||
+ 0.00000431485 * cos(5.17825414610 + 522.57741809000 * Tau)
|
||||
+ 0.00000405018 * cos(4.17294157870 + 209.36694217000 * Tau)
|
||||
+ 0.00000390627 * cos(4.48106176890 + 216.48048918000 * Tau)
|
||||
+ 0.00000373838 * cos(5.83435991810 + 117.31986822000 * Tau)
|
||||
+ 0.00000360882 * cos(3.27703082370 + 647.01083331000 * Tau)
|
||||
+ 0.00000356350 * cos(3.19152043940 + 210.11770170000 * Tau)
|
||||
+ 0.00000325598 * cos(2.26867601660 + 853.19638175000 * Tau)
|
||||
+ 0.00000206854 * cos(4.02188336740 + 735.87651353000 * Tau)
|
||||
+ 0.00000204494 * cos(0.08774848590 + 202.25339517000 * Tau)
|
||||
+ 0.00000180143 * cos(3.59704903950 + 632.78373931000 * Tau)
|
||||
+ 0.00000178474 * cos(4.09716541450 + 440.82528488000 * Tau)
|
||||
+ 0.00000153656 * cos(3.13470530380 + 625.67019231000 * Tau)
|
||||
+ 0.00000147779 * cos(0.13614300541 + 302.16477566000 * Tau)
|
||||
+ 0.00000133076 * cos(2.59350469420 + 191.95845444000 * Tau)
|
||||
+ 0.00000131975 * cos(5.93293968940 + 309.27832266000 * Tau);
|
||||
|
||||
R3 := 0.00020315005 * cos(3.02186626040 + 213.29909544000 * Tau)
|
||||
+ 0.00008923581 * cos(3.19144205750 + 220.41264244000 * Tau)
|
||||
+ 0.00006908677 * cos(4.35174889350 + 206.18554844000 * Tau)
|
||||
+ 0.00004087129 * cos(4.22406927380 + 7.11354700080 * Tau)
|
||||
+ 0.00003879041 * cos(2.01056445990 + 426.59819088000 * Tau)
|
||||
+ 0.00001070788 * cos(4.20360341240 + 199.07200144000 * Tau)
|
||||
+ 0.00000907332 * cos(2.28344368030 + 433.71173788000 * Tau)
|
||||
+ 0.00000606121 * cos(3.17458570530 + 227.52618944000 * Tau)
|
||||
+ 0.00000596639 * cos(4.13455753350 + 14.22709400200 * Tau)
|
||||
+ 0.00000483181 * cos(1.17345973260 + 639.89728631000 * Tau)
|
||||
+ 0.00000393174 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000229472 * cos(4.69838526380 + 419.48464388000 * Tau)
|
||||
+ 0.00000188250 * cos(4.59003889010 + 110.20632122000 * Tau)
|
||||
+ 0.00000149508 * cos(3.20199444400 + 103.09277422000 * Tau)
|
||||
+ 0.00000121442 * cos(3.76831374100 + 323.50541666000 * Tau)
|
||||
+ 0.00000102146 * cos(4.70974422800 + 95.97922721800 * Tau)
|
||||
+ 0.00000101215 * cos(5.81884137750 + 412.37109687000 * Tau)
|
||||
+ 0.00000093078 * cos(1.43531270910 + 647.01083331000 * Tau)
|
||||
+ 0.00000084347 * cos(2.63462379690 + 216.48048918000 * Tau)
|
||||
+ 0.00000072601 * cos(4.15395598510 + 117.31986822000 * Tau)
|
||||
+ 0.00000062198 * cos(2.31239345500 + 440.82528488000 * Tau)
|
||||
+ 0.00000054829 * cos(0.30526468471 + 853.19638175000 * Tau)
|
||||
+ 0.00000049536 * cos(2.38854232910 + 209.36694217000 * Tau)
|
||||
+ 0.00000045145 * cos(4.37317047300 + 191.95845444000 * Tau)
|
||||
+ 0.00000040671 * cos(0.68845183210 + 522.57741809000 * Tau)
|
||||
+ 0.00000040498 * cos(1.83836569760 + 302.16477566000 * Tau)
|
||||
+ 0.00000038089 * cos(5.94455115520 + 88.86568021700 * Tau)
|
||||
+ 0.00000032243 * cos(4.01146349390 + 21.34064100200 * Tau);
|
||||
|
||||
R4 := 0.00001202050 * cos(1.41499446470 + 220.41264244000 * Tau)
|
||||
+ 0.00000707796 * cos(1.16153570100 + 213.29909544000 * Tau)
|
||||
+ 0.00000516121 * cos(6.23973568330 + 206.18554844000 * Tau)
|
||||
+ 0.00000426664 * cos(2.46924890290 + 7.11354700080 * Tau)
|
||||
+ 0.00000267736 * cos(0.18659206741 + 426.59819088000 * Tau)
|
||||
+ 0.00000170171 * cos(5.95926972380 + 199.07200144000 * Tau)
|
||||
+ 0.00000150339 * cos(0.47970167140 + 433.71173788000 * Tau)
|
||||
+ 0.00000145113 * cos(1.44211060140 + 227.52618944000 * Tau)
|
||||
+ 0.00000121033 * cos(2.40527320820 + 14.22709400200 * Tau)
|
||||
+ 0.00000047332 * cos(5.56857488680 + 639.89728631000 * Tau)
|
||||
+ 0.00000018954 * cos(5.85626429120 + 647.01083331000 * Tau)
|
||||
+ 0.00000016668 * cos(0.52920774279 + 440.82528488000 * Tau)
|
||||
+ 0.00000015745 * cos(2.90112466280 + 110.20632122000 * Tau)
|
||||
+ 0.00000014724 * cos(0.29905316786 + 419.48464388000 * Tau)
|
||||
+ 0.00000014074 * cos(1.30343550660 + 412.37109687000 * Tau)
|
||||
+ 0.00000012708 * cos(2.09349305930 + 323.50541666000 * Tau)
|
||||
+ 0.00000011320 * cos(0.21785507019 + 95.97922721800 * Tau)
|
||||
+ 0.00000011133 * cos(2.46304825990 + 117.31986822000 * Tau)
|
||||
+ 0.00000009552 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000009246 * cos(1.56496312830 + 88.86568021700 * Tau)
|
||||
+ 0.00000009233 * cos(2.28127318070 + 21.34064100200 * Tau)
|
||||
+ 0.00000008970 * cos(0.68301278041 + 216.48048918000 * Tau)
|
||||
+ 0.00000008360 * cos(1.27239488460 + 234.63973644000 * Tau);
|
||||
|
||||
R5 := 0.00000128612 * cos(5.91282565140 + 220.41264244000 * Tau)
|
||||
+ 0.00000032273 * cos(0.69256228602 + 7.11354700080 * Tau)
|
||||
+ 0.00000026698 * cos(5.91428528630 + 227.52618944000 * Tau)
|
||||
+ 0.00000020223 * cos(4.95136801770 + 433.71173788000 * Tau)
|
||||
+ 0.00000019923 * cos(0.67370653385 + 14.22709400200 * Tau)
|
||||
+ 0.00000014097 * cos(2.67074280190 + 206.18554844000 * Tau)
|
||||
+ 0.00000013537 * cos(1.45669521410 + 199.07200144000 * Tau)
|
||||
+ 0.00000013364 * cos(4.58826996370 + 426.59819088000 * Tau)
|
||||
+ 0.00000007257 * cos(4.62966127160 + 213.29909544000 * Tau)
|
||||
+ 0.00000004876 * cos(3.61448275000 + 639.89728631000 * Tau)
|
||||
+ 0.00000003759 * cos(4.89624165040 + 440.82528488000 * Tau)
|
||||
+ 0.00000003303 * cos(4.07190859540 + 647.01083331000 * Tau)
|
||||
+ 0.00000003136 * cos(4.65661021910 + 191.95845444000 * Tau)
|
||||
+ 0.00000002917 * cos(0.48665273315 + 323.50541666000 * Tau)
|
||||
+ 0.00000002883 * cos(3.18003019200 + 419.48464388000 * Tau)
|
||||
+ 0.00000002338 * cos(3.69553554330 + 88.86568021700 * Tau)
|
||||
+ 0.00000002052 * cos(3.31663577370 + 95.97922721800 * Tau)
|
||||
+ 0.00000002028 * cos(0.56025552769 + 117.31986822000 * Tau);
|
||||
Result := (R0 + R1*Tau + R2*Tau2 + R3*Tau3 + R4*Tau4 + R5*Tau5);
|
||||
end;
|
||||
|
||||
{---------------------------------------------------------------------------}
|
||||
|
||||
function ComputeSaturn(JD : Double) : TStEclipticalCord;
|
||||
var
|
||||
Tau,
|
||||
Tau2,
|
||||
Tau3,
|
||||
Tau4,
|
||||
Tau5 : Double;
|
||||
begin
|
||||
Tau := (JD - 2451545.0) / 365250.0;
|
||||
Tau2 := sqr(Tau);
|
||||
Tau3 := Tau * Tau2;
|
||||
Tau4 := sqr(Tau2);
|
||||
Tau5 := Tau2 * Tau3;
|
||||
|
||||
Result.L0 := GetLongitude(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
Result.B0 := GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
Result.R0 := GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
end;
|
||||
|
||||
|
||||
end.
|
515
components/systools/source/run/sturanus.pas
Normal file
515
components/systools/source/run/sturanus.pas
Normal file
@ -0,0 +1,515 @@
|
||||
// Upgraded to Delphi 2009: Sebastian Zierer
|
||||
|
||||
(* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is TurboPower SysTools
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* TurboPower Software
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 1996-2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** *)
|
||||
|
||||
{*********************************************************}
|
||||
{* SysTools: StUranus.pas 4.04 *}
|
||||
{*********************************************************}
|
||||
{* SysTools: Astronomical Routines (for Uranus) *}
|
||||
{*********************************************************}
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
//{$I StDefine.inc}
|
||||
|
||||
unit StUranus;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
StAstroP;
|
||||
|
||||
function ComputeUranus(JD : Double) : TStEclipticalCord;
|
||||
|
||||
implementation
|
||||
|
||||
function GetLongitude(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
L0, L1,
|
||||
L2, L3,
|
||||
L4, L5 : Double;
|
||||
begin
|
||||
L0 := 5.48129294300 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.09260408252 * cos(0.89106421530 + 74.78159856700 * Tau)
|
||||
+ 0.01504247826 * cos(3.62719262190 + 1.48447270830 * Tau)
|
||||
+ 0.00365981718 * cos(1.89962189070 + 73.29712585900 * Tau)
|
||||
+ 0.00272328132 * cos(3.35823710520 + 149.56319713000 * Tau)
|
||||
+ 0.00070328499 * cos(5.39254431990 + 63.73589830300 * Tau)
|
||||
+ 0.00068892609 * cos(6.09292489050 + 76.26607127600 * Tau)
|
||||
+ 0.00061998592 * cos(2.26952040470 + 2.96894541660 * Tau)
|
||||
+ 0.00061950714 * cos(2.85098907570 + 11.04570026400 * Tau)
|
||||
+ 0.00026468869 * cos(3.14152087890 + 71.81265315100 * Tau)
|
||||
+ 0.00025710505 * cos(6.11379842940 + 454.90936653000 * Tau)
|
||||
+ 0.00021078897 * cos(4.36059465140 + 148.07872443000 * Tau)
|
||||
+ 0.00017818665 * cos(1.74436982540 + 36.64856292900 * Tau)
|
||||
+ 0.00014613471 * cos(4.73732047980 + 3.93215326310 * Tau)
|
||||
+ 0.00011162535 * cos(5.82681993690 + 224.34479570000 * Tau)
|
||||
+ 0.00010997934 * cos(0.48865493179 + 138.51749687000 * Tau)
|
||||
+ 0.00009527487 * cos(2.95516893090 + 35.16409022100 * Tau)
|
||||
+ 0.00007545543 * cos(5.23626440670 + 109.94568879000 * Tau)
|
||||
+ 0.00004220170 * cos(3.23328535510 + 70.84944530400 * Tau)
|
||||
+ 0.00004051850 * cos(2.27754158720 + 151.04766984000 * Tau)
|
||||
+ 0.00003490352 * cos(5.48305567290 + 146.59425172000 * Tau)
|
||||
+ 0.00003354607 * cos(1.06549008890 + 4.45341812490 * Tau)
|
||||
+ 0.00003144093 * cos(4.75199307600 + 77.75054398400 * Tau)
|
||||
+ 0.00002926671 * cos(4.62903695490 + 9.56122755560 * Tau)
|
||||
+ 0.00002922410 * cos(5.35236743380 + 85.82729883100 * Tau)
|
||||
+ 0.00002272790 * cos(4.36600802760 + 70.32818044200 * Tau)
|
||||
+ 0.00002148599 * cos(0.60745800902 + 38.13303563800 * Tau)
|
||||
+ 0.00002051209 * cos(1.51773563460 + 0.11187458460 * Tau)
|
||||
+ 0.00001991726 * cos(4.92437290830 + 277.03499374000 * Tau)
|
||||
+ 0.00001666910 * cos(3.62744580850 + 380.12776796000 * Tau)
|
||||
+ 0.00001533223 * cos(2.58593414270 + 52.69019803900 * Tau)
|
||||
+ 0.00001376208 * cos(2.04281409050 + 65.22037101200 * Tau)
|
||||
+ 0.00001372100 * cos(4.19641615560 + 111.43016150000 * Tau)
|
||||
+ 0.00001284183 * cos(3.11346336880 + 202.25339517000 * Tau)
|
||||
+ 0.00001281641 * cos(0.54269869505 + 222.86032299000 * Tau)
|
||||
+ 0.00001244342 * cos(0.91612680579 + 2.44768055480 * Tau)
|
||||
+ 0.00001220998 * cos(0.19901396193 + 108.46121608000 * Tau)
|
||||
+ 0.00001150993 * cos(4.17898207050 + 33.67961751300 * Tau)
|
||||
+ 0.00001150416 * cos(0.93344454002 + 3.18139373770 * Tau)
|
||||
+ 0.00001090461 * cos(1.77501638910 + 12.53017297200 * Tau)
|
||||
+ 0.00001072008 * cos(0.23564502877 + 62.25142559500 * Tau)
|
||||
+ 0.00000946195 * cos(1.19249463070 + 127.47179661000 * Tau)
|
||||
+ 0.00000707875 * cos(5.18285226580 + 213.29909544000 * Tau)
|
||||
+ 0.00000653401 * cos(0.96586909116 + 78.71375183000 * Tau)
|
||||
+ 0.00000627562 * cos(0.18210181975 + 984.60033162000 * Tau)
|
||||
+ 0.00000606827 * cos(5.43209728950 + 529.69096509000 * Tau)
|
||||
+ 0.00000559370 * cos(3.35776737700 + 0.52126486180 * Tau)
|
||||
+ 0.00000524495 * cos(2.01276707000 + 299.12639427000 * Tau)
|
||||
+ 0.00000483219 * cos(2.10553990150 + 0.96320784650 * Tau)
|
||||
+ 0.00000471288 * cos(1.40664336450 + 184.72728736000 * Tau)
|
||||
+ 0.00000467211 * cos(0.41484068933 + 145.10977901000 * Tau)
|
||||
+ 0.00000433532 * cos(5.52142978260 + 183.24281465000 * Tau)
|
||||
+ 0.00000404891 * cos(5.98689011390 + 8.07675484730 * Tau)
|
||||
+ 0.00000398996 * cos(0.33810765436 + 415.55249061000 * Tau)
|
||||
+ 0.00000395614 * cos(5.87039580950 + 351.81659231000 * Tau)
|
||||
+ 0.00000378609 * cos(2.34975805010 + 56.62235130300 * Tau)
|
||||
+ 0.00000309885 * cos(5.83301304670 + 145.63104387000 * Tau)
|
||||
+ 0.00000300379 * cos(5.64353974150 + 22.09140052800 * Tau)
|
||||
+ 0.00000294172 * cos(5.83916826230 + 39.61750834600 * Tau)
|
||||
+ 0.00000251792 * cos(1.63696775580 + 221.37585029000 * Tau)
|
||||
+ 0.00000249229 * cos(4.74617120580 + 225.82926841000 * Tau)
|
||||
+ 0.00000239334 * cos(2.35045874710 + 137.03302416000 * Tau)
|
||||
+ 0.00000224097 * cos(0.51574863468 + 84.34282612300 * Tau)
|
||||
+ 0.00000222588 * cos(2.84309380330 + 0.26063243090 * Tau)
|
||||
+ 0.00000219621 * cos(1.92212987980 + 67.66805156700 * Tau)
|
||||
+ 0.00000216549 * cos(6.14211862700 + 5.93789083320 * Tau)
|
||||
+ 0.00000216480 * cos(4.77847481360 + 340.77089205000 * Tau)
|
||||
+ 0.00000207828 * cos(5.58020570040 + 68.84370773400 * Tau)
|
||||
+ 0.00000201963 * cos(1.29693040860 + 0.04818410980 * Tau)
|
||||
+ 0.00000199146 * cos(0.95634155010 + 152.53214255000 * Tau)
|
||||
+ 0.00000193652 * cos(1.88800122610 + 456.39383924000 * Tau)
|
||||
+ 0.00000192998 * cos(0.91616058506 + 453.42489382000 * Tau)
|
||||
+ 0.00000187474 * cos(1.31924326250 + 0.16005869440 * Tau)
|
||||
+ 0.00000181934 * cos(3.53624029240 + 79.23501669200 * Tau)
|
||||
+ 0.00000173145 * cos(1.53860728050 + 160.60889740000 * Tau)
|
||||
+ 0.00000171968 * cos(5.67952685530 + 219.89137758000 * Tau)
|
||||
+ 0.00000170300 * cos(3.67717520690 + 5.41662597140 * Tau)
|
||||
+ 0.00000168648 * cos(5.87874000880 + 18.15924726500 * Tau)
|
||||
+ 0.00000164588 * cos(1.42379714840 + 106.97674337000 * Tau)
|
||||
+ 0.00000162792 * cos(3.05029377670 + 112.91463421000 * Tau)
|
||||
+ 0.00000158028 * cos(0.73811997211 + 54.17467074800 * Tau)
|
||||
+ 0.00000146653 * cos(1.26300172260 + 59.80374504000 * Tau)
|
||||
+ 0.00000143058 * cos(1.29995487560 + 35.42472265200 * Tau)
|
||||
+ 0.00000139453 * cos(5.38597723400 + 32.19514480500 * Tau)
|
||||
+ 0.00000138585 * cos(4.25994786670 + 909.81873305000 * Tau)
|
||||
+ 0.00000123840 * cos(1.37359990340 + 7.11354700080 * Tau)
|
||||
+ 0.00000110163 * cos(2.02685778980 + 554.06998748000 * Tau)
|
||||
+ 0.00000109376 * cos(5.70581833290 + 77.96299230500 * Tau)
|
||||
+ 0.00000104414 * cos(5.02820888810 + 0.75075952540 * Tau)
|
||||
+ 0.00000103562 * cos(1.45770270250 + 24.37902238800 * Tau)
|
||||
+ 0.00000103277 * cos(0.68095301267 + 14.97785352700 * Tau);
|
||||
|
||||
L1 := 75.02543121600 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00154458244 * cos(5.24201658070 + 74.78159856700 * Tau)
|
||||
+ 0.00024456413 * cos(1.71255705310 + 1.48447270830 * Tau)
|
||||
+ 0.00009257828 * cos(0.42844639064 + 11.04570026400 * Tau)
|
||||
+ 0.00008265977 * cos(1.50220035110 + 63.73589830300 * Tau)
|
||||
+ 0.00007841715 * cos(1.31983607250 + 149.56319713000 * Tau)
|
||||
+ 0.00003899105 * cos(0.46483574024 + 3.93215326310 * Tau)
|
||||
+ 0.00002283777 * cos(4.17367534000 + 76.26607127600 * Tau)
|
||||
+ 0.00001926600 * cos(0.53013080152 + 2.96894541660 * Tau)
|
||||
+ 0.00001232727 * cos(1.58634458240 + 70.84944530400 * Tau)
|
||||
+ 0.00000791206 * cos(5.43641224140 + 3.18139373770 * Tau)
|
||||
+ 0.00000766954 * cos(1.99555409580 + 73.29712585900 * Tau)
|
||||
+ 0.00000481671 * cos(2.98401996910 + 85.82729883100 * Tau)
|
||||
+ 0.00000449798 * cos(4.13826237510 + 138.51749687000 * Tau)
|
||||
+ 0.00000445600 * cos(3.72300400330 + 224.34479570000 * Tau)
|
||||
+ 0.00000426554 * cos(4.73126059390 + 71.81265315100 * Tau)
|
||||
+ 0.00000353752 * cos(2.58324496890 + 148.07872443000 * Tau)
|
||||
+ 0.00000347735 * cos(2.45372261290 + 9.56122755560 * Tau)
|
||||
+ 0.00000317084 * cos(5.57855232070 + 52.69019803900 * Tau)
|
||||
+ 0.00000205585 * cos(2.36263144250 + 2.44768055480 * Tau)
|
||||
+ 0.00000189068 * cos(4.20242881380 + 56.62235130300 * Tau)
|
||||
+ 0.00000183762 * cos(0.28371004654 + 151.04766984000 * Tau)
|
||||
+ 0.00000179920 * cos(5.68367730920 + 12.53017297200 * Tau)
|
||||
+ 0.00000171084 * cos(3.00060075290 + 78.71375183000 * Tau)
|
||||
+ 0.00000158029 * cos(2.90931969500 + 0.96320784650 * Tau)
|
||||
+ 0.00000154670 * cos(5.59083925610 + 4.45341812490 * Tau)
|
||||
+ 0.00000153515 * cos(4.65186885940 + 35.16409022100 * Tau)
|
||||
+ 0.00000151984 * cos(2.94217326890 + 77.75054398400 * Tau)
|
||||
+ 0.00000143464 * cos(2.59049246730 + 62.25142559500 * Tau)
|
||||
+ 0.00000121452 * cos(4.14839204920 + 127.47179661000 * Tau)
|
||||
+ 0.00000115546 * cos(3.73224603790 + 65.22037101200 * Tau)
|
||||
+ 0.00000102022 * cos(4.18754517990 + 145.63104387000 * Tau)
|
||||
+ 0.00000101718 * cos(6.03385875010 + 0.11187458460 * Tau)
|
||||
+ 0.00000088202 * cos(3.99035787990 + 18.15924726500 * Tau)
|
||||
+ 0.00000087549 * cos(6.15520787580 + 202.25339517000 * Tau)
|
||||
+ 0.00000080530 * cos(2.64124743930 + 22.09140052800 * Tau)
|
||||
+ 0.00000072047 * cos(6.04545933580 + 70.32818044200 * Tau)
|
||||
+ 0.00000068570 * cos(4.05071895260 + 77.96299230500 * Tau)
|
||||
+ 0.00000059173 * cos(3.70413919080 + 67.66805156700 * Tau)
|
||||
+ 0.00000047267 * cos(3.54312460520 + 351.81659231000 * Tau)
|
||||
+ 0.00000044339 * cos(5.90865821910 + 7.11354700080 * Tau)
|
||||
+ 0.00000042534 * cos(5.72357370900 + 5.41662597140 * Tau)
|
||||
+ 0.00000038544 * cos(4.91519003850 + 222.86032299000 * Tau)
|
||||
+ 0.00000036116 * cos(5.89964278800 + 33.67961751300 * Tau)
|
||||
+ 0.00000035605 * cos(3.29197259180 + 8.07675484730 * Tau)
|
||||
+ 0.00000035524 * cos(3.32784616140 + 71.60020483000 * Tau)
|
||||
+ 0.00000034996 * cos(5.08034112150 + 38.13303563800 * Tau)
|
||||
+ 0.00000031454 * cos(5.62015632300 + 984.60033162000 * Tau)
|
||||
+ 0.00000030811 * cos(5.49591403860 + 59.80374504000 * Tau)
|
||||
+ 0.00000030608 * cos(5.46414592600 + 160.60889740000 * Tau)
|
||||
+ 0.00000029866 * cos(1.65980844670 + 447.79581953000 * Tau)
|
||||
+ 0.00000029206 * cos(1.14722640420 + 462.02291353000 * Tau)
|
||||
+ 0.00000028947 * cos(4.51867390410 + 84.34282612300 * Tau)
|
||||
+ 0.00000026627 * cos(5.54127301040 + 131.40394987000 * Tau)
|
||||
+ 0.00000026605 * cos(6.14640604130 + 299.12639427000 * Tau)
|
||||
+ 0.00000025753 * cos(4.99362028420 + 137.03302416000 * Tau)
|
||||
+ 0.00000025373 * cos(5.73584678600 + 380.12776796000 * Tau);
|
||||
|
||||
L2 := 0.00053033277 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00002357636 * cos(2.26014661700 + 74.78159856700 * Tau)
|
||||
+ 0.00000769129 * cos(4.52561041820 + 11.04570026400 * Tau)
|
||||
+ 0.00000551533 * cos(3.25814281020 + 63.73589830300 * Tau)
|
||||
+ 0.00000541532 * cos(2.27573907420 + 3.93215326310 * Tau)
|
||||
+ 0.00000529473 * cos(4.92348433830 + 1.48447270830 * Tau)
|
||||
+ 0.00000257521 * cos(3.69059216860 + 3.18139373770 * Tau)
|
||||
+ 0.00000238835 * cos(5.85806638400 + 149.56319713000 * Tau)
|
||||
+ 0.00000181904 * cos(6.21763603410 + 70.84944530400 * Tau)
|
||||
+ 0.00000053504 * cos(1.44225240950 + 76.26607127600 * Tau)
|
||||
+ 0.00000049401 * cos(6.03101301720 + 56.62235130300 * Tau)
|
||||
+ 0.00000044753 * cos(3.90904910520 + 2.44768055480 * Tau)
|
||||
+ 0.00000044530 * cos(0.81152639478 + 85.82729883100 * Tau)
|
||||
+ 0.00000038222 * cos(1.78467827780 + 52.69019803900 * Tau)
|
||||
+ 0.00000037403 * cos(4.46228598030 + 2.96894541660 * Tau)
|
||||
+ 0.00000033029 * cos(0.86388149962 + 9.56122755560 * Tau)
|
||||
+ 0.00000029423 * cos(5.09818697710 + 73.29712585900 * Tau)
|
||||
+ 0.00000024292 * cos(2.10702559050 + 18.15924726500 * Tau)
|
||||
+ 0.00000022491 * cos(5.99320728690 + 138.51749687000 * Tau)
|
||||
+ 0.00000022135 * cos(4.81730808580 + 78.71375183000 * Tau)
|
||||
+ 0.00000021392 * cos(2.39880709310 + 77.96299230500 * Tau)
|
||||
+ 0.00000020578 * cos(2.16918786540 + 224.34479570000 * Tau)
|
||||
+ 0.00000017226 * cos(2.53537183200 + 145.63104387000 * Tau)
|
||||
+ 0.00000016777 * cos(3.46631344090 + 12.53017297200 * Tau)
|
||||
+ 0.00000012012 * cos(0.01941361902 + 22.09140052800 * Tau)
|
||||
+ 0.00000011010 * cos(0.08496274370 + 127.47179661000 * Tau)
|
||||
+ 0.00000010476 * cos(5.16453084070 + 71.60020483000 * Tau)
|
||||
+ 0.00000010466 * cos(4.45556032590 + 62.25142559500 * Tau)
|
||||
+ 0.00000008668 * cos(4.25550086980 + 7.11354700080 * Tau)
|
||||
+ 0.00000008387 * cos(5.50115930050 + 67.66805156700 * Tau)
|
||||
+ 0.00000007160 * cos(1.24903906390 + 5.41662597140 * Tau)
|
||||
+ 0.00000006109 * cos(3.36320161280 + 447.79581953000 * Tau)
|
||||
+ 0.00000006087 * cos(5.44611674380 + 65.22037101200 * Tau)
|
||||
+ 0.00000006013 * cos(4.51836836350 + 151.04766984000 * Tau)
|
||||
+ 0.00000006003 * cos(5.72500086740 + 462.02291353000 * Tau);
|
||||
|
||||
L3 := 0.00000120936 * cos(0.02418789918 + 74.78159856700 * Tau)
|
||||
+ 0.00000068064 * cos(4.12084267730 + 3.93215326310 * Tau)
|
||||
+ 0.00000052828 * cos(2.38964061260 + 11.04570026400 * Tau)
|
||||
+ 0.00000045806 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000045300 * cos(2.04423798410 + 3.18139373770 * Tau)
|
||||
+ 0.00000043754 * cos(2.95965039730 + 1.48447270830 * Tau)
|
||||
+ 0.00000024969 * cos(4.88741307920 + 63.73589830300 * Tau)
|
||||
+ 0.00000021061 * cos(4.54511486860 + 70.84944530400 * Tau)
|
||||
+ 0.00000019897 * cos(2.31320314140 + 149.56319713000 * Tau)
|
||||
+ 0.00000008901 * cos(1.57548871760 + 56.62235130300 * Tau)
|
||||
+ 0.00000004271 * cos(0.22777319552 + 18.15924726500 * Tau)
|
||||
+ 0.00000003613 * cos(5.39244611310 + 76.26607127600 * Tau)
|
||||
+ 0.00000003572 * cos(0.95052448578 + 77.96299230500 * Tau)
|
||||
+ 0.00000003488 * cos(4.97622811780 + 85.82729883100 * Tau)
|
||||
+ 0.00000003479 * cos(4.12969359980 + 52.69019803900 * Tau)
|
||||
+ 0.00000002696 * cos(0.37287796344 + 78.71375183000 * Tau)
|
||||
+ 0.00000002328 * cos(0.85770961794 + 145.63104387000 * Tau)
|
||||
+ 0.00000002156 * cos(5.65647821520 + 9.56122755560 * Tau);
|
||||
|
||||
L4 := 0.00000113855 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000005599 * cos(4.57882424420 + 74.78159856700 * Tau)
|
||||
+ 0.00000003203 * cos(0.34623003207 + 11.04570026400 * Tau)
|
||||
+ 0.00000001217 * cos(3.42199121830 + 56.62235130300 * Tau);
|
||||
|
||||
L5 := 0.00000000000;
|
||||
Result := (L0 + L1*Tau + L2*Tau2 + L3*Tau3 + L4*Tau4 + L5*Tau5);
|
||||
end;
|
||||
|
||||
{---------------------------------------------------------------------------}
|
||||
|
||||
function GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
B0, B1,
|
||||
B2, B3,
|
||||
B4, B5 : Double;
|
||||
begin
|
||||
B0 := 0.01346277639 * cos(2.61877810550 + 74.78159856700 * Tau)
|
||||
+ 0.00062341405 * cos(5.08111175860 + 149.56319713000 * Tau)
|
||||
+ 0.00061601203 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00009963744 * cos(1.61603876360 + 76.26607127600 * Tau)
|
||||
+ 0.00009926151 * cos(0.57630387917 + 73.29712585900 * Tau)
|
||||
+ 0.00003259455 * cos(1.26119385960 + 224.34479570000 * Tau)
|
||||
+ 0.00002972318 * cos(2.24367035540 + 1.48447270830 * Tau)
|
||||
+ 0.00002010257 * cos(6.05550401090 + 148.07872443000 * Tau)
|
||||
+ 0.00001522172 * cos(0.27960386377 + 63.73589830300 * Tau)
|
||||
+ 0.00000924055 * cos(4.03822927850 + 151.04766984000 * Tau)
|
||||
+ 0.00000760624 * cos(6.14000431920 + 71.81265315100 * Tau)
|
||||
+ 0.00000522309 * cos(3.32085194770 + 138.51749687000 * Tau)
|
||||
+ 0.00000462630 * cos(0.74256727574 + 85.82729883100 * Tau)
|
||||
+ 0.00000436843 * cos(3.38082524320 + 529.69096509000 * Tau)
|
||||
+ 0.00000434625 * cos(0.34065281858 + 77.75054398400 * Tau)
|
||||
+ 0.00000430668 * cos(3.55445034850 + 213.29909544000 * Tau)
|
||||
+ 0.00000420265 * cos(5.21279984790 + 11.04570026400 * Tau)
|
||||
+ 0.00000244698 * cos(0.78795150326 + 2.96894541660 * Tau)
|
||||
+ 0.00000232649 * cos(2.25716421380 + 222.86032299000 * Tau)
|
||||
+ 0.00000215838 * cos(1.59121704940 + 38.13303563800 * Tau)
|
||||
+ 0.00000179935 * cos(3.72487952670 + 299.12639427000 * Tau)
|
||||
+ 0.00000174895 * cos(1.23550262210 + 146.59425172000 * Tau)
|
||||
+ 0.00000173667 * cos(1.93654269130 + 380.12776796000 * Tau)
|
||||
+ 0.00000160368 * cos(5.33635436460 + 111.43016150000 * Tau)
|
||||
+ 0.00000144064 * cos(5.96239326410 + 35.16409022100 * Tau)
|
||||
+ 0.00000116363 * cos(5.73877190010 + 70.84944530400 * Tau)
|
||||
+ 0.00000106441 * cos(0.94103112994 + 70.32818044200 * Tau)
|
||||
+ 0.00000102049 * cos(2.61876256510 + 78.71375183000 * Tau);
|
||||
|
||||
B1 := 0.00206366162 * cos(4.12394311410 + 74.78159856700 * Tau)
|
||||
+ 0.00008563230 * cos(0.33819986165 + 149.56319713000 * Tau)
|
||||
+ 0.00001725703 * cos(2.12193159900 + 73.29712585900 * Tau)
|
||||
+ 0.00001374449 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00001368860 * cos(3.06861722050 + 76.26607127600 * Tau)
|
||||
+ 0.00000450639 * cos(3.77656180980 + 1.48447270830 * Tau)
|
||||
+ 0.00000399847 * cos(2.84767037790 + 224.34479570000 * Tau)
|
||||
+ 0.00000307214 * cos(1.25456766740 + 148.07872443000 * Tau)
|
||||
+ 0.00000154336 * cos(3.78575467750 + 63.73589830300 * Tau)
|
||||
+ 0.00000112432 * cos(5.57299891500 + 151.04766984000 * Tau)
|
||||
+ 0.00000110888 * cos(5.32888676460 + 138.51749687000 * Tau)
|
||||
+ 0.00000083493 * cos(3.59152795560 + 71.81265315100 * Tau)
|
||||
+ 0.00000055573 * cos(3.40135416350 + 85.82729883100 * Tau)
|
||||
+ 0.00000053690 * cos(1.70455769940 + 77.75054398400 * Tau)
|
||||
+ 0.00000041912 * cos(1.21476607430 + 11.04570026400 * Tau)
|
||||
+ 0.00000041377 * cos(4.45476669140 + 78.71375183000 * Tau)
|
||||
+ 0.00000031959 * cos(3.77446207750 + 222.86032299000 * Tau)
|
||||
+ 0.00000030297 * cos(2.56371683640 + 2.96894541660 * Tau)
|
||||
+ 0.00000026977 * cos(5.33695500290 + 213.29909544000 * Tau)
|
||||
+ 0.00000026222 * cos(0.41620628369 + 380.12776796000 * Tau);
|
||||
|
||||
B2 := 0.00009211656 * cos(5.80044305790 + 74.78159856700 * Tau)
|
||||
+ 0.00000556926 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000286265 * cos(2.17729776350 + 149.56319713000 * Tau)
|
||||
+ 0.00000094969 * cos(3.84237569810 + 73.29712585900 * Tau)
|
||||
+ 0.00000045419 * cos(4.87822046060 + 76.26607127600 * Tau)
|
||||
+ 0.00000020107 * cos(5.46264485370 + 1.48447270830 * Tau)
|
||||
+ 0.00000014793 * cos(0.87983715652 + 138.51749687000 * Tau)
|
||||
+ 0.00000014261 * cos(2.84517742690 + 148.07872443000 * Tau)
|
||||
+ 0.00000013963 * cos(5.07234043990 + 63.73589830300 * Tau)
|
||||
+ 0.00000010122 * cos(5.00290894860 + 224.34479570000 * Tau)
|
||||
+ 0.00000008299 * cos(6.26655615200 + 78.71375183000 * Tau);
|
||||
|
||||
B3 := 0.00000267832 * cos(1.25097888290 + 74.78159856700 * Tau)
|
||||
+ 0.00000011048 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000006154 * cos(4.00663614490 + 149.56319713000 * Tau)
|
||||
+ 0.00000003361 * cos(5.77804694940 + 73.29712585900 * Tau);
|
||||
|
||||
B4 := 0.00000005719 * cos(2.85499529310 + 74.78159856700 * Tau);
|
||||
|
||||
B5 := 0.00000000000;
|
||||
Result := (B0 + B1*Tau + B2*Tau2 + B3*Tau3 + B4*Tau4 + B5*Tau5);
|
||||
end;
|
||||
|
||||
{---------------------------------------------------------------------------}
|
||||
|
||||
function GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
R0, R1,
|
||||
R2, R3,
|
||||
R4, R5 : Double;
|
||||
begin
|
||||
R0 := 19.21264847900 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.88784984055 * cos(5.60377526990 + 74.78159856700 * Tau)
|
||||
+ 0.03440835545 * cos(0.32836098991 + 73.29712585900 * Tau)
|
||||
+ 0.02055653495 * cos(1.78295170030 + 149.56319713000 * Tau)
|
||||
+ 0.00649321851 * cos(4.52247298120 + 76.26607127600 * Tau)
|
||||
+ 0.00602248144 * cos(3.86003820460 + 63.73589830300 * Tau)
|
||||
+ 0.00496404171 * cos(1.40139934720 + 454.90936653000 * Tau)
|
||||
+ 0.00338525522 * cos(1.58002682950 + 138.51749687000 * Tau)
|
||||
+ 0.00243508222 * cos(1.57086595070 + 71.81265315100 * Tau)
|
||||
+ 0.00190521915 * cos(1.99809364500 + 1.48447270830 * Tau)
|
||||
+ 0.00161858251 * cos(2.79137863470 + 148.07872443000 * Tau)
|
||||
+ 0.00143705902 * cos(1.38368574480 + 11.04570026400 * Tau)
|
||||
+ 0.00093192359 * cos(0.17437193645 + 36.64856292900 * Tau)
|
||||
+ 0.00089805842 * cos(3.66105366330 + 109.94568879000 * Tau)
|
||||
+ 0.00071424265 * cos(4.24509327400 + 224.34479570000 * Tau)
|
||||
+ 0.00046677322 * cos(1.39976563940 + 35.16409022100 * Tau)
|
||||
+ 0.00039025681 * cos(3.36234710690 + 277.03499374000 * Tau)
|
||||
+ 0.00039009624 * cos(1.66971128870 + 70.84944530400 * Tau)
|
||||
+ 0.00036755160 * cos(3.88648934740 + 146.59425172000 * Tau)
|
||||
+ 0.00030348875 * cos(0.70100446346 + 151.04766984000 * Tau)
|
||||
+ 0.00029156264 * cos(3.18056174560 + 77.75054398400 * Tau)
|
||||
+ 0.00025785805 * cos(3.78537741500 + 85.82729883100 * Tau)
|
||||
+ 0.00025620360 * cos(5.25656292800 + 380.12776796000 * Tau)
|
||||
+ 0.00022637152 * cos(0.72519137745 + 529.69096509000 * Tau)
|
||||
+ 0.00020473163 * cos(2.79639811630 + 70.32818044200 * Tau)
|
||||
+ 0.00020471584 * cos(1.55588961500 + 202.25339517000 * Tau)
|
||||
+ 0.00017900561 * cos(0.55455488605 + 2.96894541660 * Tau)
|
||||
+ 0.00015502809 * cos(5.35405037600 + 38.13303563800 * Tau)
|
||||
+ 0.00014701566 * cos(4.90434406650 + 108.46121608000 * Tau)
|
||||
+ 0.00012896507 * cos(2.62154018240 + 111.43016150000 * Tau)
|
||||
+ 0.00012328151 * cos(5.96039150920 + 127.47179661000 * Tau)
|
||||
+ 0.00011959355 * cos(1.75044072170 + 984.60033162000 * Tau)
|
||||
+ 0.00011852996 * cos(0.99342814582 + 52.69019803900 * Tau)
|
||||
+ 0.00011696085 * cos(3.29825599110 + 3.93215326310 * Tau)
|
||||
+ 0.00011494701 * cos(0.43774027872 + 65.22037101200 * Tau)
|
||||
+ 0.00010792699 * cos(1.42104858470 + 213.29909544000 * Tau)
|
||||
+ 0.00009111446 * cos(4.99638600050 + 62.25142559500 * Tau)
|
||||
+ 0.00008420550 * cos(5.25350716620 + 222.86032299000 * Tau)
|
||||
+ 0.00008402147 * cos(5.03877516490 + 415.55249061000 * Tau)
|
||||
+ 0.00007449125 * cos(0.79491905956 + 351.81659231000 * Tau)
|
||||
+ 0.00007329454 * cos(3.97277527840 + 183.24281465000 * Tau)
|
||||
+ 0.00006046370 * cos(5.67960948360 + 78.71375183000 * Tau)
|
||||
+ 0.00005524133 * cos(3.11499484160 + 9.56122755560 * Tau)
|
||||
+ 0.00005444878 * cos(5.10575635360 + 145.10977901000 * Tau)
|
||||
+ 0.00005238103 * cos(2.62960141800 + 33.67961751300 * Tau)
|
||||
+ 0.00004079167 * cos(3.22064788670 + 340.77089205000 * Tau)
|
||||
+ 0.00003919476 * cos(4.25015288870 + 39.61750834600 * Tau)
|
||||
+ 0.00003801606 * cos(6.10985558500 + 184.72728736000 * Tau)
|
||||
+ 0.00003781219 * cos(3.45840272870 + 456.39383924000 * Tau)
|
||||
+ 0.00003686787 * cos(2.48718116540 + 453.42489382000 * Tau)
|
||||
+ 0.00003101743 * cos(4.14031063900 + 219.89137758000 * Tau)
|
||||
+ 0.00002962641 * cos(0.82977991995 + 56.62235130300 * Tau)
|
||||
+ 0.00002942239 * cos(0.42393808854 + 299.12639427000 * Tau)
|
||||
+ 0.00002940492 * cos(2.14637460320 + 137.03302416000 * Tau)
|
||||
+ 0.00002937799 * cos(3.67657450930 + 140.00196958000 * Tau)
|
||||
+ 0.00002865128 * cos(0.30996903761 + 12.53017297200 * Tau)
|
||||
+ 0.00002538032 * cos(4.85457831990 + 131.40394987000 * Tau)
|
||||
+ 0.00002363550 * cos(0.44253328372 + 554.06998748000 * Tau)
|
||||
+ 0.00002182572 * cos(2.94040431640 + 305.34616939000 * Tau);
|
||||
|
||||
R1 := 0.01479896370 * cos(3.67205705320 + 74.78159856700 * Tau)
|
||||
+ 0.00071212085 * cos(6.22601006670 + 63.73589830300 * Tau)
|
||||
+ 0.00068626972 * cos(6.13411265050 + 149.56319713000 * Tau)
|
||||
+ 0.00024059649 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00021468152 * cos(2.60176704270 + 76.26607127600 * Tau)
|
||||
+ 0.00020857262 * cos(5.24625494220 + 11.04570026400 * Tau)
|
||||
+ 0.00011405346 * cos(0.01848461561 + 70.84944530400 * Tau)
|
||||
+ 0.00007496775 * cos(0.42360033283 + 73.29712585900 * Tau)
|
||||
+ 0.00004243800 * cos(1.41692350370 + 85.82729883100 * Tau)
|
||||
+ 0.00003926694 * cos(3.15513991320 + 71.81265315100 * Tau)
|
||||
+ 0.00003578446 * cos(2.31160668310 + 224.34479570000 * Tau)
|
||||
+ 0.00003505936 * cos(2.58354048850 + 138.51749687000 * Tau)
|
||||
+ 0.00003228835 * cos(5.25499602900 + 3.93215326310 * Tau)
|
||||
+ 0.00003060010 * cos(0.15321893225 + 1.48447270830 * Tau)
|
||||
+ 0.00002564251 * cos(0.98076846352 + 148.07872443000 * Tau)
|
||||
+ 0.00002429445 * cos(3.99440122470 + 52.69019803900 * Tau)
|
||||
+ 0.00001644719 * cos(2.65349313120 + 127.47179661000 * Tau)
|
||||
+ 0.00001583766 * cos(1.43045619200 + 78.71375183000 * Tau)
|
||||
+ 0.00001508028 * cos(5.05996325430 + 151.04766984000 * Tau)
|
||||
+ 0.00001489525 * cos(2.67559167320 + 56.62235130300 * Tau)
|
||||
+ 0.00001413112 * cos(4.57461892060 + 202.25339517000 * Tau)
|
||||
+ 0.00001403237 * cos(1.36985349740 + 77.75054398400 * Tau)
|
||||
+ 0.00001228220 * cos(1.04703640150 + 62.25142559500 * Tau)
|
||||
+ 0.00001032731 * cos(0.26459059027 + 131.40394987000 * Tau)
|
||||
+ 0.00000992085 * cos(2.17168865910 + 65.22037101200 * Tau)
|
||||
+ 0.00000861867 * cos(5.05530802220 + 351.81659231000 * Tau)
|
||||
+ 0.00000744445 * cos(3.07640148940 + 35.16409022100 * Tau)
|
||||
+ 0.00000687470 * cos(2.49912565670 + 77.96299230500 * Tau)
|
||||
+ 0.00000646851 * cos(4.47290422910 + 70.32818044200 * Tau)
|
||||
+ 0.00000623602 * cos(0.86253073820 + 9.56122755560 * Tau)
|
||||
+ 0.00000604362 * cos(0.90717667985 + 984.60033162000 * Tau)
|
||||
+ 0.00000574710 * cos(3.23070708460 + 447.79581953000 * Tau)
|
||||
+ 0.00000561839 * cos(2.71778158980 + 462.02291353000 * Tau)
|
||||
+ 0.00000530364 * cos(5.91655309050 + 213.29909544000 * Tau)
|
||||
+ 0.00000527794 * cos(5.15136007080 + 2.96894541660 * Tau);
|
||||
|
||||
R2 := 0.00022439904 * cos(0.69953118760 + 74.78159856700 * Tau)
|
||||
+ 0.00004727037 * cos(1.69901641490 + 63.73589830300 * Tau)
|
||||
+ 0.00001681903 * cos(4.64833551730 + 70.84944530400 * Tau)
|
||||
+ 0.00001649559 * cos(3.09660078980 + 11.04570026400 * Tau)
|
||||
+ 0.00001433755 * cos(3.52119917950 + 149.56319713000 * Tau)
|
||||
+ 0.00000770188 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000500429 * cos(6.17229032220 + 76.26607127600 * Tau)
|
||||
+ 0.00000461009 * cos(0.76676632849 + 3.93215326310 * Tau)
|
||||
+ 0.00000390371 * cos(4.49605283500 + 56.62235130300 * Tau)
|
||||
+ 0.00000389945 * cos(5.52673426380 + 85.82729883100 * Tau)
|
||||
+ 0.00000292097 * cos(0.20389012095 + 52.69019803900 * Tau)
|
||||
+ 0.00000286579 * cos(3.53357683270 + 73.29712585900 * Tau)
|
||||
+ 0.00000272898 * cos(3.84707823650 + 138.51749687000 * Tau)
|
||||
+ 0.00000219674 * cos(1.96418942890 + 131.40394987000 * Tau)
|
||||
+ 0.00000215788 * cos(0.84812474187 + 77.96299230500 * Tau)
|
||||
+ 0.00000205449 * cos(3.24758017120 + 78.71375183000 * Tau)
|
||||
+ 0.00000148554 * cos(4.89840863840 + 127.47179661000 * Tau)
|
||||
+ 0.00000128834 * cos(2.08146849520 + 3.18139373770 * Tau);
|
||||
|
||||
R3 := 0.00001164382 * cos(4.73453291600 + 74.78159856700 * Tau)
|
||||
+ 0.00000212367 * cos(3.34255735000 + 63.73589830300 * Tau)
|
||||
+ 0.00000196408 * cos(2.98004616320 + 70.84944530400 * Tau)
|
||||
+ 0.00000104527 * cos(0.95807937648 + 11.04570026400 * Tau)
|
||||
+ 0.00000072540 * cos(0.99701907912 + 149.56319713000 * Tau)
|
||||
+ 0.00000071681 * cos(0.02528455665 + 56.62235130300 * Tau)
|
||||
+ 0.00000054875 * cos(2.59436811270 + 3.93215326310 * Tau)
|
||||
+ 0.00000036377 * cos(5.65035573020 + 77.96299230500 * Tau)
|
||||
+ 0.00000034029 * cos(3.81553325640 + 76.26607127600 * Tau)
|
||||
+ 0.00000032081 * cos(3.59825177840 + 131.40394987000 * Tau);
|
||||
|
||||
R4 := 0.00000052996 * cos(3.00838033090 + 74.78159856700 * Tau)
|
||||
+ 0.00000009887 * cos(1.91399083600 + 56.62235130300 * Tau);
|
||||
|
||||
R5 := 0.00000000000;
|
||||
Result := (R0 + R1*Tau + R2*Tau2 + R3*Tau3 + R4*Tau4 + R5*Tau5);
|
||||
end;
|
||||
|
||||
{---------------------------------------------------------------------------}
|
||||
|
||||
function ComputeUranus(JD : Double) : TStEclipticalCord;
|
||||
var
|
||||
Tau,
|
||||
Tau2,
|
||||
Tau3,
|
||||
Tau4,
|
||||
Tau5 : Double;
|
||||
begin
|
||||
Tau := (JD - 2451545.0) / 365250.0;
|
||||
Tau2 := sqr(Tau);
|
||||
Tau3 := Tau * Tau2;
|
||||
Tau4 := sqr(Tau2);
|
||||
Tau5 := Tau2 * Tau3;
|
||||
|
||||
Result.L0 := GetLongitude(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
Result.B0 := GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
Result.R0 := GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
end;
|
||||
|
||||
|
||||
end.
|
222
components/systools/source/run/stvenus.pas
Normal file
222
components/systools/source/run/stvenus.pas
Normal file
@ -0,0 +1,222 @@
|
||||
// Upgraded to Delphi 2009: Sebastian Zierer
|
||||
|
||||
(* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is TurboPower SysTools
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* TurboPower Software
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 1996-2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** *)
|
||||
|
||||
{*********************************************************}
|
||||
{* SysTools: StVenus.pas 4.04 *}
|
||||
{*********************************************************}
|
||||
{* SysTools: Astronomical Routines (for Venus) *}
|
||||
{*********************************************************}
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
{$I StDefine.inc}
|
||||
|
||||
unit StVenus;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
StAstroP;
|
||||
|
||||
function ComputeVenus(JD : Double) : TStEclipticalCord;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
function GetLongitude(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
L0, L1,
|
||||
L2, L3,
|
||||
L4, L5 : Double;
|
||||
begin
|
||||
L0 := 3.17614666770 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.01353968419 * cos(5.59313319620 + 10213.28554600000 * Tau)
|
||||
+ 0.00089891645 * cos(5.30650048470 + 20426.57109200000 * Tau)
|
||||
+ 0.00005477201 * cos(4.41630652530 + 7860.41939240000 * Tau)
|
||||
+ 0.00003455732 * cos(2.69964470780 + 11790.62908900000 * Tau)
|
||||
+ 0.00002372061 * cos(2.99377539570 + 3930.20969620000 * Tau)
|
||||
+ 0.00001664069 * cos(4.25018935030 + 1577.34354240000 * Tau)
|
||||
+ 0.00001438322 * cos(4.15745043960 + 9683.59458110000 * Tau)
|
||||
+ 0.00001317108 * cos(5.18668219090 + 26.29831980000 * Tau)
|
||||
+ 0.00001200521 * cos(6.15357115320 + 30639.85663900000 * Tau)
|
||||
+ 0.00000769314 * cos(0.81629615911 + 9437.76293490000 * Tau)
|
||||
+ 0.00000761380 * cos(1.95014702120 + 529.69096509000 * Tau)
|
||||
+ 0.00000707676 * cos(1.06466707210 + 775.52261132000 * Tau)
|
||||
+ 0.00000584836 * cos(3.99839884760 + 191.44826611000 * Tau)
|
||||
+ 0.00000499915 * cos(4.12340210070 + 15720.83878500000 * Tau)
|
||||
+ 0.00000429498 * cos(3.58642859750 + 19367.18916200000 * Tau)
|
||||
+ 0.00000326967 * cos(5.67736583710 + 5507.55323870000 * Tau)
|
||||
+ 0.00000326221 * cos(4.59056473100 + 10404.73381200000 * Tau)
|
||||
+ 0.00000231937 * cos(3.16251057070 + 9153.90361600000 * Tau)
|
||||
+ 0.00000179695 * cos(4.65337915580 + 1109.37855210000 * Tau)
|
||||
+ 0.00000155464 * cos(5.57043888950 + 19651.04848100000 * Tau)
|
||||
+ 0.00000128263 * cos(4.22604493740 + 20.77539549200 * Tau)
|
||||
+ 0.00000127907 * cos(0.96209822685 + 5661.33204920000 * Tau)
|
||||
+ 0.00000105547 * cos(1.53721191250 + 801.82093112000 * Tau);
|
||||
|
||||
L1 := 10213.52943100000 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00095707712 * cos(2.46424448980 + 10213.28554600000 * Tau)
|
||||
+ 0.00014444977 * cos(0.51624564679 + 20426.57109200000 * Tau)
|
||||
+ 0.00000213374 * cos(1.79547929370 + 30639.85663900000 * Tau)
|
||||
+ 0.00000173904 * cos(2.65535879440 + 26.29831980000 * Tau)
|
||||
+ 0.00000151669 * cos(6.10635282370 + 1577.34354240000 * Tau)
|
||||
+ 0.00000082233 * cos(5.70234133730 + 191.44826611000 * Tau)
|
||||
+ 0.00000069734 * cos(2.68136034980 + 9437.76293490000 * Tau)
|
||||
+ 0.00000052408 * cos(3.60013087660 + 775.52261132000 * Tau)
|
||||
+ 0.00000038318 * cos(1.03379038030 + 529.69096509000 * Tau)
|
||||
+ 0.00000029633 * cos(1.25056322350 + 5507.55323870000 * Tau)
|
||||
+ 0.00000025056 * cos(6.10664792860 + 10404.73381200000 * Tau);
|
||||
|
||||
L2 :=
|
||||
+ 0.00054127076 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00003891460 * cos(0.34514360047 + 10213.28554600000 * Tau)
|
||||
+ 0.00001337880 * cos(2.02011286080 + 20426.57109200000 * Tau)
|
||||
+ 0.00000023836 * cos(2.04592119010 + 26.29831980000 * Tau)
|
||||
+ 0.00000019331 * cos(3.53527371460 + 30639.85663900000 * Tau)
|
||||
+ 0.00000009984 * cos(3.97130221100 + 775.52261132000 * Tau)
|
||||
+ 0.00000007046 * cos(1.51962593410 + 1577.34354240000 * Tau)
|
||||
+ 0.00000006014 * cos(0.99926757893 + 191.44826611000 * Tau);
|
||||
|
||||
L3 :=
|
||||
+ 0.00000135742 * cos(4.80389020990 + 10213.28554600000 * Tau)
|
||||
+ 0.00000077846 * cos(3.66876371590 + 20426.57109200000 * Tau)
|
||||
+ 0.00000026023 * cos(0.00000000000 + 0.00000000000 * Tau);
|
||||
|
||||
L4 :=
|
||||
+ 0.00000114016 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000003209 * cos(5.20514170160 + 20426.57109200000 * Tau)
|
||||
+ 0.00000001714 * cos(2.51099591710 + 10213.28554600000 * Tau);
|
||||
|
||||
L5 := 0.00000000874 * cos(3.14159265360 + 0.00000000000 * Tau);
|
||||
Result := (L0 + L1*Tau + L2*Tau2 + L3*Tau3 + L4*Tau4 + L5*Tau5);
|
||||
end;
|
||||
|
||||
{-------------------------------------------------------------------------}
|
||||
|
||||
function GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
B0, B1,
|
||||
B2, B3,
|
||||
B4, B5 : Double;
|
||||
begin
|
||||
B0 := 0.05923638472 * cos(0.26702775813 + 10213.28554600000 * Tau)
|
||||
+ 0.00040107978 * cos(1.14737178110 + 20426.57109200000 * Tau)
|
||||
+ 0.00032814918 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00001011392 * cos(1.08946123020 + 30639.85663900000 * Tau)
|
||||
+ 0.00000149458 * cos(6.25390296070 + 18073.70493900000 * Tau)
|
||||
+ 0.00000137788 * cos(0.86020146523 + 1577.34354240000 * Tau)
|
||||
+ 0.00000129973 * cos(3.67152483650 + 9437.76293490000 * Tau)
|
||||
+ 0.00000119507 * cos(3.70468812800 + 2352.86615380000 * Tau)
|
||||
+ 0.00000107971 * cos(4.53903677650 + 22003.91463500000 * Tau);
|
||||
|
||||
B1 := 0.00513347602 * cos(1.80364310800 + 10213.28554600000 * Tau)
|
||||
+ 0.00004380100 * cos(3.38615711590 + 20426.57109200000 * Tau)
|
||||
+ 0.00000199162 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000196586 * cos(2.53001197490 + 30639.85663900000 * Tau);
|
||||
|
||||
B2 := 0.00022377665 * cos(3.38509143880 + 10213.28554600000 * Tau)
|
||||
+ 0.00000281739 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00000173164 * cos(5.25563766920 + 20426.57109200000 * Tau)
|
||||
+ 0.00000026945 * cos(3.87040891570 + 30639.85663900000 * Tau);
|
||||
|
||||
B3 := 0.00000646671 * cos(4.99166565280 + 10213.28554600000 * Tau)
|
||||
+ 0.00000019952 * cos(3.14159265360 + 0.00000000000 * Tau)
|
||||
+ 0.00000005540 * cos(0.77376923951 + 20426.57109200000 * Tau)
|
||||
+ 0.00000002526 * cos(5.44493763020 + 30639.85663900000 * Tau);
|
||||
|
||||
B4 := 0.00000014102 * cos(0.31537190181 + 10213.28554600000 * Tau);
|
||||
|
||||
B5 := 0.00000000000;
|
||||
Result := (B0 + B1*Tau + B2*Tau2 + B3*Tau3 + B4*Tau4 + B5*Tau5);
|
||||
end;
|
||||
|
||||
{-------------------------------------------------------------------------}
|
||||
|
||||
function GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
|
||||
var
|
||||
R0, R1,
|
||||
R2, R3,
|
||||
R4, R5 : Double;
|
||||
begin
|
||||
R0 := 0.72334820905 * cos(0.00000000000 + 0.00000000000 * Tau)
|
||||
+ 0.00489824185 * cos(4.02151832270 + 10213.28554600000 * Tau)
|
||||
+ 0.00001658058 * cos(4.90206728010 + 20426.57109200000 * Tau)
|
||||
+ 0.00001632093 * cos(2.84548851890 + 7860.41939240000 * Tau)
|
||||
+ 0.00001378048 * cos(1.12846590600 + 11790.62908900000 * Tau)
|
||||
+ 0.00000498399 * cos(2.58682187720 + 9683.59458110000 * Tau)
|
||||
+ 0.00000373958 * cos(1.42314837060 + 3930.20969620000 * Tau)
|
||||
+ 0.00000263616 * cos(5.52938185920 + 9437.76293490000 * Tau)
|
||||
+ 0.00000237455 * cos(2.55135903980 + 15720.83878500000 * Tau)
|
||||
+ 0.00000221983 * cos(2.01346776770 + 19367.18916200000 * Tau)
|
||||
+ 0.00000125896 * cos(2.72769833560 + 1577.34354240000 * Tau)
|
||||
+ 0.00000119467 * cos(3.01975365260 + 10404.73381200000 * Tau);
|
||||
|
||||
R1 :=
|
||||
+ 0.00034551039 * cos(0.89198710598 + 10213.28554600000 * Tau)
|
||||
+ 0.00000234203 * cos(1.77224942710 + 20426.57109200000 * Tau)
|
||||
+ 0.00000233998 * cos(3.14159265360 + 0.00000000000 * Tau);
|
||||
|
||||
R2 :=
|
||||
+ 0.00001406587 * cos(5.06366395190 + 10213.28554600000 * Tau)
|
||||
+ 0.00000015529 * cos(5.47321687980 + 20426.57109200000 * Tau)
|
||||
+ 0.00000013059 * cos(0.00000000000 + 0.00000000000 * Tau);
|
||||
|
||||
R3 :=
|
||||
+ 0.00000049582 * cos(3.22263554520 + 10213.28554600000 * Tau);
|
||||
|
||||
R4 :=
|
||||
+ 0.00000000573 * cos(0.92229697820 + 10213.28554600000 * Tau);
|
||||
|
||||
R5 := 0.00000000000;
|
||||
Result := (R0 + R1*Tau + R2*Tau2 + R3*Tau3 + R4*Tau4 + R5*Tau5);
|
||||
end;
|
||||
|
||||
{-------------------------------------------------------------------------}
|
||||
|
||||
function ComputeVenus(JD : Double) : TStEclipticalCord;
|
||||
var
|
||||
Tau,
|
||||
Tau2,
|
||||
Tau3,
|
||||
Tau4,
|
||||
Tau5 : Double;
|
||||
begin
|
||||
Tau := (JD - 2451545.0) / 365250.0;
|
||||
Tau2 := sqr(Tau);
|
||||
Tau3 := Tau * Tau2;
|
||||
Tau4 := sqr(Tau2);
|
||||
Tau5 := Tau2 * Tau3;
|
||||
|
||||
Result.L0 := GetLongitude(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
Result.B0 := GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
Result.R0 := GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5);
|
||||
end;
|
||||
|
||||
|
||||
end.
|
Reference in New Issue
Block a user