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

Annotation of /dao/DelphiScanner/Components/tpsystools_4.04/source/StVenus.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: 9345 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: StVenus.pas 4.04 *}
30     {*********************************************************}
31     {* SysTools: Astronomical Routines (for Venus) *}
32     {*********************************************************}
33    
34     {$I StDefine.inc}
35    
36     unit StVenus;
37    
38     interface
39    
40     uses
41     StAstroP;
42    
43     function ComputeVenus(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 := 3.17614666770 * cos(0.00000000000 + 0.00000000000 * Tau)
55     + 0.01353968419 * cos(5.59313319620 + 10213.28554600000 * Tau)
56     + 0.00089891645 * cos(5.30650048470 + 20426.57109200000 * Tau)
57     + 0.00005477201 * cos(4.41630652530 + 7860.41939240000 * Tau)
58     + 0.00003455732 * cos(2.69964470780 + 11790.62908900000 * Tau)
59     + 0.00002372061 * cos(2.99377539570 + 3930.20969620000 * Tau)
60     + 0.00001664069 * cos(4.25018935030 + 1577.34354240000 * Tau)
61     + 0.00001438322 * cos(4.15745043960 + 9683.59458110000 * Tau)
62     + 0.00001317108 * cos(5.18668219090 + 26.29831980000 * Tau)
63     + 0.00001200521 * cos(6.15357115320 + 30639.85663900000 * Tau)
64     + 0.00000769314 * cos(0.81629615911 + 9437.76293490000 * Tau)
65     + 0.00000761380 * cos(1.95014702120 + 529.69096509000 * Tau)
66     + 0.00000707676 * cos(1.06466707210 + 775.52261132000 * Tau)
67     + 0.00000584836 * cos(3.99839884760 + 191.44826611000 * Tau)
68     + 0.00000499915 * cos(4.12340210070 + 15720.83878500000 * Tau)
69     + 0.00000429498 * cos(3.58642859750 + 19367.18916200000 * Tau)
70     + 0.00000326967 * cos(5.67736583710 + 5507.55323870000 * Tau)
71     + 0.00000326221 * cos(4.59056473100 + 10404.73381200000 * Tau)
72     + 0.00000231937 * cos(3.16251057070 + 9153.90361600000 * Tau)
73     + 0.00000179695 * cos(4.65337915580 + 1109.37855210000 * Tau)
74     + 0.00000155464 * cos(5.57043888950 + 19651.04848100000 * Tau)
75     + 0.00000128263 * cos(4.22604493740 + 20.77539549200 * Tau)
76     + 0.00000127907 * cos(0.96209822685 + 5661.33204920000 * Tau)
77     + 0.00000105547 * cos(1.53721191250 + 801.82093112000 * Tau);
78    
79     L1 := 10213.52943100000 * cos(0.00000000000 + 0.00000000000 * Tau)
80     + 0.00095707712 * cos(2.46424448980 + 10213.28554600000 * Tau)
81     + 0.00014444977 * cos(0.51624564679 + 20426.57109200000 * Tau)
82     + 0.00000213374 * cos(1.79547929370 + 30639.85663900000 * Tau)
83     + 0.00000173904 * cos(2.65535879440 + 26.29831980000 * Tau)
84     + 0.00000151669 * cos(6.10635282370 + 1577.34354240000 * Tau)
85     + 0.00000082233 * cos(5.70234133730 + 191.44826611000 * Tau)
86     + 0.00000069734 * cos(2.68136034980 + 9437.76293490000 * Tau)
87     + 0.00000052408 * cos(3.60013087660 + 775.52261132000 * Tau)
88     + 0.00000038318 * cos(1.03379038030 + 529.69096509000 * Tau)
89     + 0.00000029633 * cos(1.25056322350 + 5507.55323870000 * Tau)
90     + 0.00000025056 * cos(6.10664792860 + 10404.73381200000 * Tau);
91    
92     L2 :=
93     + 0.00054127076 * cos(0.00000000000 + 0.00000000000 * Tau)
94     + 0.00003891460 * cos(0.34514360047 + 10213.28554600000 * Tau)
95     + 0.00001337880 * cos(2.02011286080 + 20426.57109200000 * Tau)
96     + 0.00000023836 * cos(2.04592119010 + 26.29831980000 * Tau)
97     + 0.00000019331 * cos(3.53527371460 + 30639.85663900000 * Tau)
98     + 0.00000009984 * cos(3.97130221100 + 775.52261132000 * Tau)
99     + 0.00000007046 * cos(1.51962593410 + 1577.34354240000 * Tau)
100     + 0.00000006014 * cos(0.99926757893 + 191.44826611000 * Tau);
101    
102     L3 :=
103     + 0.00000135742 * cos(4.80389020990 + 10213.28554600000 * Tau)
104     + 0.00000077846 * cos(3.66876371590 + 20426.57109200000 * Tau)
105     + 0.00000026023 * cos(0.00000000000 + 0.00000000000 * Tau);
106    
107     L4 :=
108     + 0.00000114016 * cos(3.14159265360 + 0.00000000000 * Tau)
109     + 0.00000003209 * cos(5.20514170160 + 20426.57109200000 * Tau)
110     + 0.00000001714 * cos(2.51099591710 + 10213.28554600000 * Tau);
111    
112     L5 := 0.00000000874 * cos(3.14159265360 + 0.00000000000 * Tau);
113     Result := (L0 + L1*Tau + L2*Tau2 + L3*Tau3 + L4*Tau4 + L5*Tau5);
114     end;
115    
116     {-------------------------------------------------------------------------}
117    
118     function GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
119     var
120     B0, B1,
121     B2, B3,
122     B4, B5 : Double;
123     begin
124     B0 := 0.05923638472 * cos(0.26702775813 + 10213.28554600000 * Tau)
125     + 0.00040107978 * cos(1.14737178110 + 20426.57109200000 * Tau)
126     + 0.00032814918 * cos(3.14159265360 + 0.00000000000 * Tau)
127     + 0.00001011392 * cos(1.08946123020 + 30639.85663900000 * Tau)
128     + 0.00000149458 * cos(6.25390296070 + 18073.70493900000 * Tau)
129     + 0.00000137788 * cos(0.86020146523 + 1577.34354240000 * Tau)
130     + 0.00000129973 * cos(3.67152483650 + 9437.76293490000 * Tau)
131     + 0.00000119507 * cos(3.70468812800 + 2352.86615380000 * Tau)
132     + 0.00000107971 * cos(4.53903677650 + 22003.91463500000 * Tau);
133    
134     B1 := 0.00513347602 * cos(1.80364310800 + 10213.28554600000 * Tau)
135     + 0.00004380100 * cos(3.38615711590 + 20426.57109200000 * Tau)
136     + 0.00000199162 * cos(0.00000000000 + 0.00000000000 * Tau)
137     + 0.00000196586 * cos(2.53001197490 + 30639.85663900000 * Tau);
138    
139     B2 := 0.00022377665 * cos(3.38509143880 + 10213.28554600000 * Tau)
140     + 0.00000281739 * cos(0.00000000000 + 0.00000000000 * Tau)
141     + 0.00000173164 * cos(5.25563766920 + 20426.57109200000 * Tau)
142     + 0.00000026945 * cos(3.87040891570 + 30639.85663900000 * Tau);
143    
144     B3 := 0.00000646671 * cos(4.99166565280 + 10213.28554600000 * Tau)
145     + 0.00000019952 * cos(3.14159265360 + 0.00000000000 * Tau)
146     + 0.00000005540 * cos(0.77376923951 + 20426.57109200000 * Tau)
147     + 0.00000002526 * cos(5.44493763020 + 30639.85663900000 * Tau);
148    
149     B4 := 0.00000014102 * cos(0.31537190181 + 10213.28554600000 * Tau);
150    
151     B5 := 0.00000000000;
152     Result := (B0 + B1*Tau + B2*Tau2 + B3*Tau3 + B4*Tau4 + B5*Tau5);
153     end;
154    
155     {-------------------------------------------------------------------------}
156    
157     function GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5 : Double) : Double;
158     var
159     R0, R1,
160     R2, R3,
161     R4, R5 : Double;
162     begin
163     R0 := 0.72334820905 * cos(0.00000000000 + 0.00000000000 * Tau)
164     + 0.00489824185 * cos(4.02151832270 + 10213.28554600000 * Tau)
165     + 0.00001658058 * cos(4.90206728010 + 20426.57109200000 * Tau)
166     + 0.00001632093 * cos(2.84548851890 + 7860.41939240000 * Tau)
167     + 0.00001378048 * cos(1.12846590600 + 11790.62908900000 * Tau)
168     + 0.00000498399 * cos(2.58682187720 + 9683.59458110000 * Tau)
169     + 0.00000373958 * cos(1.42314837060 + 3930.20969620000 * Tau)
170     + 0.00000263616 * cos(5.52938185920 + 9437.76293490000 * Tau)
171     + 0.00000237455 * cos(2.55135903980 + 15720.83878500000 * Tau)
172     + 0.00000221983 * cos(2.01346776770 + 19367.18916200000 * Tau)
173     + 0.00000125896 * cos(2.72769833560 + 1577.34354240000 * Tau)
174     + 0.00000119467 * cos(3.01975365260 + 10404.73381200000 * Tau);
175    
176     R1 :=
177     + 0.00034551039 * cos(0.89198710598 + 10213.28554600000 * Tau)
178     + 0.00000234203 * cos(1.77224942710 + 20426.57109200000 * Tau)
179     + 0.00000233998 * cos(3.14159265360 + 0.00000000000 * Tau);
180    
181     R2 :=
182     + 0.00001406587 * cos(5.06366395190 + 10213.28554600000 * Tau)
183     + 0.00000015529 * cos(5.47321687980 + 20426.57109200000 * Tau)
184     + 0.00000013059 * cos(0.00000000000 + 0.00000000000 * Tau);
185    
186     R3 :=
187     + 0.00000049582 * cos(3.22263554520 + 10213.28554600000 * Tau);
188    
189     R4 :=
190     + 0.00000000573 * cos(0.92229697820 + 10213.28554600000 * Tau);
191    
192     R5 := 0.00000000000;
193     Result := (R0 + R1*Tau + R2*Tau2 + R3*Tau3 + R4*Tau4 + R5*Tau5);
194     end;
195    
196     {-------------------------------------------------------------------------}
197    
198     function ComputeVenus(JD : Double) : TStEclipticalCord;
199     var
200     Tau,
201     Tau2,
202     Tau3,
203     Tau4,
204     Tau5 : Double;
205     begin
206     Tau := (JD - 2451545.0) / 365250.0;
207     Tau2 := sqr(Tau);
208     Tau3 := Tau * Tau2;
209     Tau4 := sqr(Tau2);
210     Tau5 := Tau2 * Tau3;
211    
212     Result.L0 := GetLongitude(Tau, Tau2, Tau3, Tau4, Tau5);
213     Result.B0 := GetLatitude(Tau, Tau2, Tau3, Tau4, Tau5);
214     Result.R0 := GetRadiusVector(Tau, Tau2, Tau3, Tau4, Tau5);
215     end;
216    
217    
218     end.

  ViewVC Help
Powered by ViewVC 1.1.20