/[projects]/dao/DelphiScanner/Components/tpsystools_4.04/source/StNeptun.pas
ViewVC logotype

Annotation of /dao/DelphiScanner/Components/tpsystools_4.04/source/StNeptun.pas

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2671 - (hide annotations) (download)
Tue Aug 25 18:15:15 2015 UTC (8 years, 10 months ago) by torben
File size: 13908 byte(s)
Added tpsystools component
1 torben 2671 // Upgraded to Delphi 2009: Sebastian Zierer
2    
3     (* ***** BEGIN LICENSE BLOCK *****
4     * Version: MPL 1.1
5     *
6     * The contents of this file are subject to the Mozilla Public License Version
7     * 1.1 (the "License"); you may not use this file except in compliance with
8     * the License. You may obtain a copy of the License at
9     * http://www.mozilla.org/MPL/
10     *
11     * Software distributed under the License is distributed on an "AS IS" basis,
12     * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13     * for the specific language governing rights and limitations under the
14     * License.
15     *
16     * The Original Code is TurboPower SysTools
17     *
18     * The Initial Developer of the Original Code is
19     * TurboPower Software
20     *
21     * Portions created by the Initial Developer are Copyright (C) 1996-2002
22     * the Initial Developer. All Rights Reserved.
23     *
24     * Contributor(s):
25     *
26     * ***** END LICENSE BLOCK ***** *)
27    
28     {*********************************************************}
29     {* SysTools: StNeptun.pas 4.04 *}
30     {*********************************************************}
31     {* SysTools: Astronomical Routines (for Neptune) *}
32     {*********************************************************}
33    
34     {$I StDefine.inc}
35    
36     unit StNeptun;
37    
38     interface
39    
40     uses
41     StAstroP;
42    
43     function ComputeNeptune(JD : Double) : TStEclipticalCord;
44    
45    
46     implementation
47    
48     function GetLongitude(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
49     var
50     L0, L1,
51     L2, L3,
52     L4, L5 : Double;
53     begin
54     L0 := 5.31188633050 * cos(0.00000000000 + 0.00000000000 * Tau)
55     + 0.01798475509 * cos(2.90101273050 + 38.13303563800 * Tau)
56     + 0.01019727662 * cos(0.48580923660 + 1.48447270830 * Tau)
57     + 0.00124531845 * cos(4.83008090680 + 36.64856292900 * Tau)
58     + 0.00042064450 * cos(5.41054991610 + 2.96894541660 * Tau)
59     + 0.00037714589 * cos(6.09221834950 + 35.16409022100 * Tau)
60     + 0.00033784734 * cos(1.24488865580 + 76.26607127600 * Tau)
61     + 0.00016482741 * cos(0.00007729261 + 491.55792946000 * Tau)
62     + 0.00009198582 * cos(4.93747059920 + 39.61750834600 * Tau)
63     + 0.00008994249 * cos(0.27462142569 + 175.16605980000 * Tau)
64     + 0.00004216235 * cos(1.98711914360 + 73.29712585900 * Tau)
65     + 0.00003364818 * cos(1.03590121820 + 33.67961751300 * Tau)
66     + 0.00002284800 * cos(4.20606932560 + 4.45341812490 * Tau)
67     + 0.00001433512 * cos(2.78340432710 + 74.78159856700 * Tau)
68     + 0.00000900240 * cos(2.07606702420 + 109.94568879000 * Tau)
69     + 0.00000744996 * cos(3.19032530140 + 71.81265315100 * Tau)
70     + 0.00000506206 * cos(5.74785370250 + 114.39910691000 * Tau)
71     + 0.00000399552 * cos(0.34972342569 + 1021.24889460000 * Tau)
72     + 0.00000345195 * cos(3.46186210170 + 41.10198105400 * Tau)
73     + 0.00000340323 * cos(3.30369900420 + 77.75054398400 * Tau)
74     + 0.00000323004 * cos(2.24815188610 + 32.19514480500 * Tau)
75     + 0.00000306338 * cos(0.49684039897 + 0.52126486180 * Tau)
76     + 0.00000287322 * cos(4.50523446020 + 0.04818410980 * Tau)
77     + 0.00000282170 * cos(2.24565579690 + 146.59425172000 * Tau)
78     + 0.00000266605 * cos(4.88932609480 + 0.96320784650 * Tau)
79     + 0.00000251941 * cos(5.78166597290 + 388.46515524000 * Tau)
80     + 0.00000244722 * cos(1.24693337930 + 9.56122755560 * Tau)
81     + 0.00000232887 * cos(2.50459795020 + 137.03302416000 * Tau)
82     + 0.00000227079 * cos(1.79713054540 + 453.42489382000 * Tau)
83     + 0.00000170404 * cos(3.32390630650 + 108.46121608000 * Tau)
84     + 0.00000151401 * cos(2.19153094280 + 33.94024994400 * Tau)
85     + 0.00000150180 * cos(2.99706110410 + 5.93789083320 * Tau)
86     + 0.00000148295 * cos(0.85948986145 + 111.43016150000 * Tau)
87     + 0.00000118672 * cos(3.67706204310 + 2.44768055480 * Tau)
88     + 0.00000109300 * cos(2.41599378050 + 183.24281465000 * Tau)
89     + 0.00000103305 * cos(0.04078966679 + 0.26063243090 * Tau)
90     + 0.00000103054 * cos(4.40441222000 + 70.32818044200 * Tau)
91     + 0.00000101821 * cos(5.70539236950 + 0.11187458460 * Tau);
92    
93     L1 := 38.37687716700 * cos(0.00000000000 + 0.00000000000 * Tau)
94     + 0.00016604187 * cos(4.86319129560 + 1.48447270830 * Tau)
95     + 0.00015807148 * cos(2.27923488530 + 38.13303563800 * Tau)
96     + 0.00003334701 * cos(3.68199676020 + 76.26607127600 * Tau)
97     + 0.00001305840 * cos(3.67320813490 + 2.96894541660 * Tau)
98     + 0.00000604832 * cos(1.50477747550 + 35.16409022100 * Tau)
99     + 0.00000178623 * cos(3.45318524150 + 39.61750834600 * Tau)
100     + 0.00000106537 * cos(2.45126138330 + 4.45341812490 * Tau)
101     + 0.00000105747 * cos(2.75479326550 + 33.67961751300 * Tau)
102     + 0.00000072684 * cos(5.48724732700 + 36.64856292900 * Tau)
103     + 0.00000057355 * cos(1.85767603380 + 114.39910691000 * Tau)
104     + 0.00000057069 * cos(5.21649804970 + 0.52126486180 * Tau)
105     + 0.00000035368 * cos(4.51676827540 + 74.78159856700 * Tau)
106     + 0.00000032216 * cos(5.90411489680 + 77.75054398400 * Tau)
107     + 0.00000029871 * cos(3.67043294110 + 388.46515524000 * Tau)
108     + 0.00000028866 * cos(5.16877529160 + 9.56122755560 * Tau)
109     + 0.00000028742 * cos(5.16732589020 + 2.44768055480 * Tau)
110     + 0.00000025507 * cos(5.24526281930 + 168.05251280000 * Tau);
111    
112     L2 := 0.00053892649 * cos(0.00000000000 + 0.00000000000 * Tau)
113     + 0.00000295693 * cos(1.85520292250 + 1.48447270830 * Tau)
114     + 0.00000281251 * cos(1.19084538890 + 38.13303563800 * Tau)
115     + 0.00000270190 * cos(5.72143228150 + 76.26607127600 * Tau)
116     + 0.00000023023 * cos(1.21035596450 + 2.96894541660 * Tau)
117     + 0.00000009057 * cos(4.42544992040 + 35.16409022100 * Tau)
118     + 0.00000007333 * cos(0.54033306830 + 2.44768055480 * Tau);
119    
120     L3 := 0.00000031254 * cos(0.00000000000 + 0.00000000000 * Tau)
121     + 0.00000014541 * cos(1.35337075860 + 76.26607127600 * Tau)
122     + 0.00000012461 * cos(6.04431418810 + 1.48447270830 * Tau)
123     + 0.00000011547 * cos(6.11257808370 + 38.13303563800 * Tau);
124    
125     L4 := 0.00000113998 * cos(3.14159265360 + 0.00000000000 * Tau);
126    
127     L5 := 0.00000000000;
128     Result := (L0 + L1*Tau + L2*Tau2 + L3*Tau3 + L4*Tau4 + L5*Tau5);
129     end;
130    
131     {---------------------------------------------------------------------------}
132    
133     function GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
134     var
135     B0, B1,
136     B2, B3,
137     B4, B5 : Double;
138     begin
139     B0 := 0.03088622933 * cos(1.44104372630 + 38.13303563800 * Tau)
140     + 0.00027780087 * cos(5.91271882840 + 76.26607127600 * Tau)
141     + 0.00027623609 * cos(0.00000000000 + 0.00000000000 * Tau)
142     + 0.00015448133 * cos(3.50877080890 + 39.61750834600 * Tau)
143     + 0.00015355490 * cos(2.52123799480 + 36.64856292900 * Tau)
144     + 0.00001999919 * cos(1.50998669500 + 74.78159856700 * Tau)
145     + 0.00001967540 * cos(4.37778195770 + 1.48447270830 * Tau)
146     + 0.00001015137 * cos(3.21561035880 + 35.16409022100 * Tau)
147     + 0.00000605767 * cos(2.80246601410 + 73.29712585900 * Tau)
148     + 0.00000594878 * cos(2.12892708110 + 41.10198105400 * Tau)
149     + 0.00000588805 * cos(3.18655882500 + 2.96894541660 * Tau)
150     + 0.00000401830 * cos(4.16883287240 + 114.39910691000 * Tau)
151     + 0.00000279964 * cos(1.68165309700 + 77.75054398400 * Tau)
152     + 0.00000261647 * cos(3.76722704750 + 213.29909544000 * Tau)
153     + 0.00000254333 * cos(3.27120499440 + 453.42489382000 * Tau)
154     + 0.00000205590 * cos(4.25652348860 + 529.69096509000 * Tau)
155     + 0.00000140455 * cos(3.52969556380 + 137.03302416000 * Tau);
156    
157     B1 := 0.00227279214 * cos(3.80793089870 + 38.13303563800 * Tau)
158     + 0.00001803120 * cos(1.97576485380 + 76.26607127600 * Tau)
159     + 0.00001433300 * cos(3.14159265360 + 0.00000000000 * Tau)
160     + 0.00001385733 * cos(4.82555548020 + 36.64856292900 * Tau)
161     + 0.00001073298 * cos(6.08054240710 + 39.61750834600 * Tau)
162     + 0.00000147903 * cos(3.85766231350 + 74.78159856700 * Tau)
163     + 0.00000136448 * cos(0.47764957338 + 1.48447270830 * Tau)
164     + 0.00000070285 * cos(6.18782052140 + 35.16409022100 * Tau)
165     + 0.00000051899 * cos(5.05221791890 + 73.29712585900 * Tau)
166     + 0.00000042568 * cos(0.30721737205 + 114.39910691000 * Tau)
167     + 0.00000037273 * cos(4.89476629250 + 41.10198105400 * Tau)
168     + 0.00000037104 * cos(5.75999349110 + 2.96894541660 * Tau)
169     + 0.00000026399 * cos(5.21566335940 + 213.29909544000 * Tau);
170    
171     B2 := 0.00009690766 * cos(5.57123750290 + 38.13303563800 * Tau)
172     + 0.00000078815 * cos(3.62705474220 + 76.26607127600 * Tau)
173     + 0.00000071523 * cos(0.45476688580 + 36.64856292900 * Tau)
174     + 0.00000058646 * cos(3.14159265360 + 0.00000000000 * Tau)
175     + 0.00000029915 * cos(1.60671721860 + 39.61750834600 * Tau)
176     + 0.00000006472 * cos(5.60736756580 + 74.78159856700 * Tau);
177    
178     B3 := 0.00000273423 * cos(1.01688979070 + 38.13303563800 * Tau)
179     + 0.00000002393 * cos(0.00000000000 + 0.00000000000 * Tau)
180     + 0.00000002274 * cos(2.36805657130 + 36.64856292900 * Tau)
181     + 0.00000002029 * cos(5.33364321340 + 76.26607127600 * Tau);
182    
183     B4 := 0.00000005728 * cos(2.66872693320 + 38.13303563800 * Tau);
184    
185     B5 := 0.00000000000;
186     Result := (B0 + B1*Tau + B2*Tau2 + B3*Tau3 + B4*Tau4 + B5*Tau5);
187     end;
188    
189     {---------------------------------------------------------------------------}
190    
191     function GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
192     var
193     R0, R1,
194     R2, R3,
195     R4, R5 : Double;
196     begin
197     R0 := 30.07013206100 * cos(0.00000000000 + 0.00000000000 * Tau)
198     + 0.27062259490 * cos(1.32999458930 + 38.13303563800 * Tau)
199     + 0.01691764281 * cos(3.25186138900 + 36.64856292900 * Tau)
200     + 0.00807830737 * cos(5.18592836170 + 1.48447270830 * Tau)
201     + 0.00537760613 * cos(4.52113902850 + 35.16409022100 * Tau)
202     + 0.00495725642 * cos(1.57105654810 + 491.55792946000 * Tau)
203     + 0.00274571970 * cos(1.84552256800 + 175.16605980000 * Tau)
204     + 0.00135134095 * cos(3.37220607380 + 39.61750834600 * Tau)
205     + 0.00121801825 * cos(5.79754444300 + 76.26607127600 * Tau)
206     + 0.00100895397 * cos(0.37702748681 + 73.29712585900 * Tau)
207     + 0.00069791722 * cos(3.79617226930 + 2.96894541660 * Tau)
208     + 0.00046687838 * cos(5.74937810090 + 33.67961751300 * Tau)
209     + 0.00024593778 * cos(0.50801728204 + 109.94568879000 * Tau)
210     + 0.00016939242 * cos(1.59422166990 + 71.81265315100 * Tau)
211     + 0.00014229686 * cos(1.07786112900 + 74.78159856700 * Tau)
212     + 0.00012011825 * cos(1.92062131640 + 1021.24889460000 * Tau)
213     + 0.00008394731 * cos(0.67816895547 + 146.59425172000 * Tau)
214     + 0.00007571800 * cos(1.07149263430 + 388.46515524000 * Tau)
215     + 0.00005720852 * cos(2.59059512270 + 4.45341812490 * Tau)
216     + 0.00004839672 * cos(1.90685991070 + 41.10198105400 * Tau)
217     + 0.00004483492 * cos(2.90573457530 + 529.69096509000 * Tau)
218     + 0.00004420804 * cos(1.74993796500 + 108.46121608000 * Tau)
219     + 0.00004353790 * cos(0.67985662370 + 32.19514480500 * Tau)
220     + 0.00004270202 * cos(3.41343865820 + 453.42489382000 * Tau)
221     + 0.00003380930 * cos(0.84810683275 + 183.24281465000 * Tau)
222     + 0.00002881063 * cos(1.98600105120 + 137.03302416000 * Tau)
223     + 0.00002878942 * cos(3.67415901850 + 350.33211960000 * Tau)
224     + 0.00002635535 * cos(3.09755943420 + 213.29909544000 * Tau)
225     + 0.00002530149 * cos(5.79839567010 + 490.07345675000 * Tau)
226     + 0.00002523132 * cos(0.48630800015 + 493.04240217000 * Tau)
227     + 0.00002306293 * cos(2.80962935720 + 70.32818044200 * Tau)
228     + 0.00002087303 * cos(0.61858378281 + 33.94024994400 * Tau);
229    
230     R1 := 0.00236338502 * cos(0.70498011235 + 38.13303563800 * Tau)
231     + 0.00013220279 * cos(3.32015499890 + 1.48447270830 * Tau)
232     + 0.00008621863 * cos(6.21628951630 + 35.16409022100 * Tau)
233     + 0.00002701740 * cos(1.88140666780 + 39.61750834600 * Tau)
234     + 0.00002154735 * cos(2.09431198090 + 2.96894541660 * Tau)
235     + 0.00002153150 * cos(5.16873840980 + 76.26607127600 * Tau)
236     + 0.00001603165 * cos(0.00000000000 + 0.00000000000 * Tau)
237     + 0.00001463924 * cos(1.18417031050 + 33.67961751300 * Tau)
238     + 0.00001135773 * cos(3.91891199650 + 36.64856292900 * Tau)
239     + 0.00000897650 * cos(5.24122933530 + 388.46515524000 * Tau)
240     + 0.00000789908 * cos(0.53315484580 + 168.05251280000 * Tau)
241     + 0.00000760030 * cos(0.02051033644 + 182.27960680000 * Tau)
242     + 0.00000607183 * cos(1.07706500350 + 1021.24889460000 * Tau)
243     + 0.00000571622 * cos(3.40060785430 + 484.44438246000 * Tau)
244     + 0.00000560790 * cos(2.88685815670 + 498.67147646000 * Tau);
245    
246     R2 := 0.00004247412 * cos(5.89910679120 + 38.13303563800 * Tau)
247     + 0.00000217570 * cos(0.34581829080 + 1.48447270830 * Tau)
248     + 0.00000163025 * cos(2.23872947130 + 168.05251280000 * Tau)
249     + 0.00000156285 * cos(4.59414467340 + 182.27960680000 * Tau)
250     + 0.00000127141 * cos(2.84786298080 + 35.16409022100 * Tau);
251    
252     R3 := 0.00000166297 * cos(4.55243893490 + 38.13303563800 * Tau);
253    
254     R4 := 0.00000000000;
255    
256     R5 := 0.00000000000;
257     Result := (R0 + R1*Tau + R2*Tau2 + R3*Tau3 + R4*Tau4 + R5*Tau5);
258     end;
259    
260     {---------------------------------------------------------------------------}
261    
262     function ComputeNeptune(JD : Double) : TStEclipticalCord;
263     var
264     Tau,
265     Tau2,
266     Tau3,
267     Tau4,
268     Tau5 : Double;
269     begin
270     Tau := (JD - 2451545.0) / 365250.0;
271     Tau2 := sqr(Tau);
272     Tau3 := Tau * Tau2;
273     Tau4 := sqr(Tau2);
274     Tau5 := Tau2 * Tau3;
275    
276     Result.L0 := GetLongitude(Tau, Tau2, Tau3, Tau4, Tau5);
277     Result.B0 := GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5);
278     Result.R0 := GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5);
279     end;
280    
281    
282     end.

  ViewVC Help
Powered by ViewVC 1.1.20