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

Contents of /dao/DelphiScanner/Components/tpsystools_4.04/source/StVenus.pas

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2671 - (show annotations) (download)
Tue Aug 25 18:15:15 2015 UTC (8 years, 9 months ago) by torben
File size: 9345 byte(s)
Added tpsystools component
1 // 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