/****************************************************************************** * 惑星の黄経/黄緯/距離計算プログラム for 星空ウォッチング(プラネタリウム) * * by「菊池さん」 * * Copyright(C) 2001 Kikuchi-san's workshop. All rights reserved. * * * * 引用図書 * * 本アプレットの惑星位置計算には「天体位置概略式の解説」(暦計算研究会 * * 井上 圭典・鈴木 邦裕 著 海文堂)に記載された海上保安庁水路部、 * * 久保(太陽、月、水星、金星、火星) 福島(木星、土星、天王星、海王星、冥王星) * * 両氏の水路部研究報告−黄経、黄緯、距離計算式を利用しています。 * *****************************************************************************/ public class SkyPlanet { static double pai = Math.PI / 180.0; //角度->ラジアン変換定数 //========================================================================= // 角度の正規化を行う。すなわち引数の範囲を 0≦θ<360 にする。 //========================================================================= public static double norm(double angle) { return angle - 360.0 * Math.floor(angle / 360.0); } //========================================================================= // 太陽の地心黄経(λ)、黄緯(β)、距離(r)を計算する // 引数  .... J2000.0からの経過ユリウス世紀 T // 戻り値 .... 黄経、黄緯(λ,β)(度)、距離(r)(au) ans[0],ans[1],ans[2] //========================================================================= public static void calc_SUN(double T,double ans[]) { double rm,r; rm = .0004 * Math.cos( pai * norm( 161 + 31557 * T ) ); rm += .0004 * Math.cos( pai * norm( 48 + 29930 * T ) ); rm += .0005 * Math.cos( pai * norm( 221 + 2281 * T ) ); rm += .0005 * Math.cos( pai * norm( 118 + 155 * T ) ); rm += .0006 * Math.cos( pai * norm( 316 + 33718 * T ) ); rm += .0007 * Math.cos( pai * norm( 64 + 9038 * T ) ); rm += .0007 * Math.cos( pai * norm( 110 + 3035 * T ) ); rm += .0007 * Math.cos( pai * norm( 45 + 65929 * T ) ); rm += .0013 * Math.cos( pai * norm( 352 + 22519 * T ) ); rm += .0015 * Math.cos( pai * norm( 254 + 45038 * T ) ); rm += .0018 * Math.cos( pai * norm( 208 + 445267 * T ) ); rm += .0018 * Math.cos( pai * norm( 159 + 19 * T ) ); rm += .0020 * Math.cos( pai * norm( 158 + 32964 * T ) ); rm += .0200 * Math.cos( pai * norm( 265.1 + 71998.1 * T ) ); rm -= .0048 * T * Math.cos( pai * norm( 267.520 + 35999.050 * T ) ); rm += 1.9147 * Math.cos( pai * norm( 267.520 + 35999.050 * T ) ); rm += norm( 280.4659 + 36000.7695 * T ); r = .000005 * Math.cos( pai * norm( 226 + 33718 * T ) ); r += .000005 * Math.cos( pai * norm( 233 + 22519 * T ) ); r += .000016 * Math.cos( pai * norm( 164 + 45038 * T ) ); r += .000016 * Math.cos( pai * norm( 68 + 32964 * T ) ); r += .000031 * Math.cos( pai * norm( 298 + 445267 * T ) ); r += .000139 * Math.cos( pai * norm( 175 + 71998 * T ) ); r -= .000042 * T * Math.cos( pai * norm( 177.53 + 35999.05 * T ) ); r += .016706 * Math.cos( pai * norm( 177.53 + 35999.05 * T ) ); r += 1.000140 * Math.cos( pai * norm( 0.0 + 0.0 * T ) ); ans[0] = rm; ans[1] = 0.0; ans[2] = r; } //========================================================================= // 月の地心黄経(λ)、黄緯(β)、距離(r)、赤道地平視差(p)を計算する // 引数  .... J2000.0からの経過ユリウス世紀 T // 戻り値 .... 黄経、黄緯(λ,β)(度)、距離(r)(km)、赤道地平視差(p) ans[0]〜[3] //========================================================================= public static void calc_MOON(double T,double ans[]) { double rm,bt,p; rm = .0003 * Math.cos( pai * norm( 191 + 2322131 * T ) ); rm += .0003 * Math.cos( pai * norm( 70 + 4067 * T ) ); rm += .0003 * Math.cos( pai * norm( 220 + 549197 * T ) ); rm += .0003 * Math.cos( pai * norm( 58 + 1808933 * T ) ); rm += .0003 * Math.cos( pai * norm( 337 + 349472 * T ) ); rm += .0003 * Math.cos( pai * norm( 354 + 381404 * T ) ); rm += .0003 * Math.cos( pai * norm( 340 + 958465 * T ) ); rm += .0004 * Math.cos( pai * norm( 187 + 12006 * T ) ); rm += .0004 * Math.cos( pai * norm( 223 + 39871 * T ) ); rm += .0005 * Math.cos( pai * norm( 242 + 509131 * T ) ); rm += .0005 * Math.cos( pai * norm( 24 + 1745069 * T ) ); rm += .0005 * Math.cos( pai * norm( 90 + 1908795 * T ) ); rm += .0006 * Math.cos( pai * norm( 156 + 2258267 * T ) ); rm += .0006 * Math.cos( pai * norm( 38 + 111869 * T ) ); rm += .0007 * Math.cos( pai * norm( 127 + 27864 * T ) ); rm += .0007 * Math.cos( pai * norm( 186 + 485333 * T ) ); rm += .0007 * Math.cos( pai * norm( 50 + 405201 * T ) ); rm += .0007 * Math.cos( pai * norm( 114 + 790672 * T ) ); rm += .0008 * Math.cos( pai * norm( 98 + 1403732 * T ) ); rm += .0009 * Math.cos( pai * norm( 129 + 858602 * T ) ); rm += .0011 * Math.cos( pai * norm( 186 + 1920802 * T ) ); rm += .0012 * Math.cos( pai * norm( 249 + 1267871 * T ) ); rm += .0016 * Math.cos( pai * norm( 152 + 1856938 * T ) ); rm += .0018 * Math.cos( pai * norm( 274 + 401329 * T ) ); rm += .0021 * Math.cos( pai * norm( 16 + 341337 * T ) ); rm += .0021 * Math.cos( pai * norm( 85 + 71998 * T ) ); rm += .0021 * Math.cos( pai * norm( 357 + 990397 * T ) ); rm += .0022 * Math.cos( pai * norm( 151 + 818536 * T ) ); rm += .0023 * Math.cos( pai * norm( 163 + 922466 * T ) ); rm += .0024 * Math.cos( pai * norm( 122 + 99863 * T ) ); rm += .0026 * Math.cos( pai * norm( 17 + 1379739 * T ) ); rm += .0027 * Math.cos( pai * norm( 182 + 918399 * T ) ); rm += .0028 * Math.cos( pai * norm( 145 + 1934 * T ) ); rm += .0037 * Math.cos( pai * norm( 259 + 541062 * T ) ); rm += .0038 * Math.cos( pai * norm( 21 + 1781068 * T ) ); rm += .0040 * Math.cos( pai * norm( 29 + 133 * T ) ); rm += .0040 * Math.cos( pai * norm( 56 + 1844932 * T ) ); rm += .0040 * Math.cos( pai * norm( 283 + 1331734 * T ) ); rm += .0050 * Math.cos( pai * norm( 205 + 481266 * T ) ); rm += .0052 * Math.cos( pai * norm( 107 + 31932 * T ) ); rm += .0068 * Math.cos( pai * norm( 323 + 926533 * T ) ); rm += .0079 * Math.cos( pai * norm( 188 + 449334 * T ) ); rm += .0085 * Math.cos( pai * norm( 111 + 826671 * T ) ); rm += .0100 * Math.cos( pai * norm( 315 + 1431597 * T ) ); rm += .0107 * Math.cos( pai * norm( 246 + 1303870 * T ) ); rm += .0110 * Math.cos( pai * norm( 142 + 489205 * T ) ); rm += .0125 * Math.cos( pai * norm( 52 + 1443603 * T ) ); rm += .0154 * Math.cos( pai * norm( 41 + 75870 * T ) ); rm += .0304 * Math.cos( pai * norm( 222.5 + 513197.9 * T ) ); rm += .0347 * Math.cos( pai * norm( 27.9 + 445267.1 * T ) ); rm += .0409 * Math.cos( pai * norm( 47.4 + 441199.8 * T ) ); rm += .0458 * Math.cos( pai * norm( 148.2 + 854535.2 * T ) ); rm += .0533 * Math.cos( pai * norm( 280.7 + 1367733.1 * T ) ); rm += .0571 * Math.cos( pai * norm( 13.2 + 377336.3 * T ) ); rm += .0588 * Math.cos( pai * norm( 124.2 + 63863.5 * T ) ); rm += .1144 * Math.cos( pai * norm( 276.5 + 966404.0 * T ) ); rm += .1851 * Math.cos( pai * norm( 87.53 + 35999.05 * T ) ); rm += .2136 * Math.cos( pai * norm( 179.93 + 954397.74 * T ) ); rm += .6583 * Math.cos( pai * norm( 145.70 + 890534.22 * T ) ); rm += 1.2740 * Math.cos( pai * norm( 10.74 + 413335.35 * T ) ); rm += 6.2888 * Math.cos( pai * norm( 44.963 + 477198.868 * T ) ); rm += norm( 218.3162 + 481267.8809 * T ); bt = .0003 * Math.cos( pai * norm( 57 + 335334 * T ) ); bt += .0003 * Math.cos( pai * norm( 16 + 1814936 * T ) ); bt += .0003 * Math.cos( pai * norm( 115 + 2264270 * T ) ); bt += .0003 * Math.cos( pai * norm( 57 + 1409735 * T ) ); bt += .0003 * Math.cos( pai * norm( 282 + 932536 * T ) ); bt += .0004 * Math.cos( pai * norm( 352 + 1024264 * T ) ); bt += .0004 * Math.cos( pai * norm( 149 + 2328134 * T ) ); bt += .0005 * Math.cos( pai * norm( 222 + 948395 * T ) ); bt += .0005 * Math.cos( pai * norm( 149 + 419339 * T ) ); bt += .0005 * Math.cos( pai * norm( 190 + 848532 * T ) ); bt += .0006 * Math.cos( pai * norm( 322 + 1361730 * T ) ); bt += .0006 * Math.cos( pai * norm( 134 + 559072 * T ) ); bt += .0007 * Math.cos( pai * norm( 205 + 1309873 * T ) ); bt += .0008 * Math.cos( pai * norm( 235 + 972407 * T ) ); bt += .0009 * Math.cos( pai * norm( 340 + 1787072 * T ) ); bt += .0010 * Math.cos( pai * norm( 288 + 1297866 * T ) ); bt += .0011 * Math.cos( pai * norm( 48 + 1914799 * T ) ); bt += .0013 * Math.cos( pai * norm( 65 + 37935 * T ) ); bt += .0013 * Math.cos( pai * norm( 6 + 447203 * T ) ); bt += .0014 * Math.cos( pai * norm( 129 + 29996 * T ) ); bt += .0015 * Math.cos( pai * norm( 316 + 996400 * T ) ); bt += .0015 * Math.cos( pai * norm( 121 + 928469 * T ) ); bt += .0015 * Math.cos( pai * norm( 46 + 42002 * T ) ); bt += .0018 * Math.cos( pai * norm( 10 + 1449606 * T ) ); bt += .0018 * Math.cos( pai * norm( 181 + 519201 * T ) ); bt += .0018 * Math.cos( pai * norm( 153 + 820668 * T ) ); bt += .0019 * Math.cos( pai * norm( 141 + 924402 * T ) ); bt += .0021 * Math.cos( pai * norm( 80 + 105866 * T ) ); bt += .0022 * Math.cos( pai * norm( 241 + 1337737 * T ) ); bt += .0022 * Math.cos( pai * norm( 308 + 481268 * T ) ); bt += .0025 * Math.cos( pai * norm( 106 + 860538 * T ) ); bt += .0034 * Math.cos( pai * norm( 230 + 443331 * T ) ); bt += .0042 * Math.cos( pai * norm( 14 + 1850935 * T ) ); bt += .0043 * Math.cos( pai * norm( 217 + 547066 * T ) ); bt += .0082 * Math.cos( pai * norm( 55 + 371333 * T ) ); bt += .0088 * Math.cos( pai * norm( 87 + 471196 * T ) ); bt += .0093 * Math.cos( pai * norm( 187 + 884531 * T ) ); bt += .0172 * Math.cos( pai * norm( 273.2 + 1437599.8 * T ) ); bt += .0326 * Math.cos( pai * norm( 239.0 + 1373736.2 * T ) ); bt += .0463 * Math.cos( pai * norm( 82.5 + 69866.7 * T ) ); bt += .0554 * Math.cos( pai * norm( 104.0 + 896537.4 * T ) ); bt += .1733 * Math.cos( pai * norm( 52.43 + 407332.20 * T ) ); bt += .2777 * Math.cos( pai * norm( 48.31 + 6003.15 * T ) ); bt += .2806 * Math.cos( pai * norm( 138.24 + 960400.89 * T ) ); bt += 5.1281 * Math.cos( pai * norm( 3.273 + 483202.019 * T ) ); p = .000005 * Math.cos( pai * norm( 140 + 405201 * T ) ); p += .000006 * Math.cos( pai * norm( 212 + 99863 * T ) ); p += .000006 * Math.cos( pai * norm( 276 + 485333 * T ) ); p += .000007 * Math.cos( pai * norm( 148 + 1808933 * T ) ); p += .000007 * Math.cos( pai * norm( 281 + 2322131 * T ) ); p += .000009 * Math.cos( pai * norm( 204 + 790672 * T ) ); p += .000010 * Math.cos( pai * norm( 114 + 1745069 * T ) ); p += .000011 * Math.cos( pai * norm( 219 + 858602 * T ) ); p += .000011 * Math.cos( pai * norm( 180 + 1908795 * T ) ); p += .000012 * Math.cos( pai * norm( 246 + 2258267 * T ) ); p += .000013 * Math.cos( pai * norm( 4 + 401329 * T ) ); p += .000013 * Math.cos( pai * norm( 106 + 341337 * T ) ); p += .000013 * Math.cos( pai * norm( 188 + 1403732 * T ) ); p += .000019 * Math.cos( pai * norm( 339 + 1267871 * T ) ); p += .000023 * Math.cos( pai * norm( 266 + 553069 * T ) ); p += .000026 * Math.cos( pai * norm( 241 + 818536 * T ) ); p += .000029 * Math.cos( pai * norm( 87 + 990397 * T ) ); p += .000030 * Math.cos( pai * norm( 131 + 75870 * T ) ); p += .000031 * Math.cos( pai * norm( 253 + 922466 * T ) ); p += .000033 * Math.cos( pai * norm( 349 + 541062 * T ) ); p += .000034 * Math.cos( pai * norm( 272 + 918399 * T ) ); p += .000041 * Math.cos( pai * norm( 295 + 481266 * T ) ); p += .000063 * Math.cos( pai * norm( 278 + 449334 * T ) ); p += .000064 * Math.cos( pai * norm( 13 + 1331734 * T ) ); p += .000073 * Math.cos( pai * norm( 111 + 1781068 * T ) ); p += .000078 * Math.cos( pai * norm( 146 + 1844932 * T ) ); p += .000083 * Math.cos( pai * norm( 53 + 926533 * T ) ); p += .000084 * Math.cos( pai * norm( 214 + 63864 * T ) ); p += .000103 * Math.cos( pai * norm( 201 + 826671 * T ) ); p += .000111 * Math.cos( pai * norm( 178 + 35999 * T ) ); p += .000167 * Math.cos( pai * norm( 336 + 1303870 * T ) ); p += .000173 * Math.cos( pai * norm( 45 + 1431597 * T ) ); p += .000197 * Math.cos( pai * norm( 232 + 489205 * T ) ); p += .000263 * Math.cos( pai * norm( 312 + 513198 * T ) ); p += .000271 * Math.cos( pai * norm( 118 + 445267 * T ) ); p += .000319 * Math.cos( pai * norm( 137.4 + 441199.8 * T ) ); p += .000400 * Math.cos( pai * norm( 103.2 + 377336.3 * T ) ); p += .000531 * Math.cos( pai * norm( 238.2 + 854535.2 * T ) ); p += .000858 * Math.cos( pai * norm( 10.7 + 1367733.1 * T ) ); p += .002824 * Math.cos( pai * norm( 269.93 + 954397.74 * T ) ); p += .007842 * Math.cos( pai * norm( 235.70 + 890534.22 * T ) ); p += .009530 * Math.cos( pai * norm( 100.74 + 413335.35 * T ) ); p += .051820 * Math.cos( pai * norm( 134.963 + 477198.868 * T ) ); p += .950725; ans[0] = rm; ans[1] = bt; ans[2] = Math.round( 6378.140 / Math.sin(p * pai) ); //単位km ans[3] = p; } //========================================================================= // 水星の日心黄経(λ)、黄緯(β)、動径(r)を計算する // 引数  .... J2000.0からの経過ユリウス世紀 T // 戻り値 .... 黄経、黄緯(λ,β)(度)、動径(r)(au) ans[0],ans[1],ans[2] //========================================================================= public static void calc_MERCURY(double T,double ans[]) { double rm,bt,r; rm = .0003 * Math.cos( pai * norm( 11 + 448419 * T ) ); rm += .0003 * Math.cos( pai * norm( 288 + 123392 * T ) ); rm += .0003 * Math.cos( pai * norm( 63 + 181909 * T ) ); rm += .0004 * Math.cos( pai * norm( 84 + 143117 * T ) ); rm += .0005 * Math.cos( pai * norm( 292 + 1046308 * T ) ); rm += .0006 * Math.cos( pai * norm( 268 + 155828 * T ) ); rm += .0009 * Math.cos( pai * norm( 171 + 143403 * T ) ); rm += .0010 * Math.cos( pai * norm( 234 + 32437 * T ) ); rm += .0011 * Math.cos( pai * norm( 54 + 1046308 * T ) ); rm += .0019 * Math.cos( pai * norm( 85 + 6356 * T ) ); rm += .0023 * Math.cos( pai * norm( 117 + 896836 * T ) ); rm += .0052 * Math.cos( pai * norm( 239 + 896835 * T ) ); rm += .0069 * Math.cos( pai * norm( 148 + 1 * T ) ); rm += .0081 * Math.cos( pai * norm( 302 + 747363 * T ) ); rm += .0230 * Math.cos( pai * norm( 64.0 + 747362.6 * T ) ); rm += .0256 * Math.cos( pai * norm( 127.4 + 597890.8 * T ) ); rm += .0760 * Math.cos( pai * norm( 312.6 + 448418.3 * T ) ); rm += .0850 * Math.cos( pai * norm( 143.0 + 149473.3 * T ) ); rm += .1016 * Math.cos( pai * norm( 249.2 + 597890.1 * T ) ); rm += .1796 * Math.cos( pai * norm( 137.84 + 298945.77 * T ) ); rm += .5258 * Math.cos( pai * norm( 74.38 + 448417.55 * T ) ); rm +=( 2.9818 + .0006 * T )*Math.cos( pai * norm( 259.589 + 298945.031 * T ) ); rm +=( 23.4405 + .0023 * T )*Math.cos( pai * norm( 84.7947 + 149472.5153 * T ) ); rm += norm( 252.2502 + 149474.0714 * T ); bt = .0003 * Math.cos( pai * norm( 146 + 896836 * T ) ); bt += .0005 * Math.cos( pai * norm( 352 + 149474 * T ) ); bt += .0009 * Math.cos( pai * norm( 45 + 448417 * T ) ); bt += .0009 * Math.cos( pai * norm( 331 + 747364 * T ) ); bt += .0012 * Math.cos( pai * norm( 83 + 1046308 * T ) ); bt += .0020 * Math.cos( pai * norm( 157 + 597891 * T ) ); bt += .0023 * Math.cos( pai * norm( 347 + 298946 * T ) ); bt += .0028 * Math.cos( pai * norm( 342 + 448419 * T ) ); bt += .0047 * Math.cos( pai * norm( 268 + 896835 * T ) ); bt += .0050 * Math.cos( pai * norm( 230 + 298945 * T ) ); bt += .0187 * Math.cos( pai * norm( 93.1 + 747362.9 * T ) ); bt += .0367 * Math.cos( pai * norm( 55.7 + 149472.1 * T ) ); bt += .0753 * Math.cos( pai * norm( 278.3 + 597890.4 * T ) ); bt += .3123 * Math.cos( pai * norm( 103.51 + 448417.92 * T ) ); bt +=( 1.3643 + .0005 * T )*Math.cos( pai * norm( 288.71 + 298945.40 * T ) ); bt +=( 1.4396 + .0005 * T )*Math.cos( pai * norm( 119.12 + 0.37 * T ) ); bt +=( 6.7057 + .0017 * T )*Math.cos( pai * norm( 113.919 + 149472.886 * T ) ); r = .000006 * Math.cos( pai * norm( 149 + 896835 * T ) ); r += .000042 * Math.cos( pai * norm( 334 + 747363 * T ) ); r += .000218 * Math.cos( pai * norm( 159.2 + 597890.1 * T ) ); r += .001214 * Math.cos( pai * norm( 344.38 + 448417.55 * T ) ); r += (.007955 + .000002 * T)*Math.cos( pai * norm( 169.59 + 298945.03 * T ) ); r += (.078341 + .000008 * T)*Math.cos( pai * norm( 354.795 + 149472.515 * T ) ); r += norm( .395283 + .000002 * T ); ans[0] = rm; ans[1] = bt; ans[2] = r; } //========================================================================= // 金星の日心黄経(λ)、黄緯(β)、動径(r)を計算する // 引数  .... J2000.0からの経過ユリウス世紀 T // 戻り値 .... 黄経、黄緯(λ,β)(度)、動径(r)(au) ans[0],ans[1],ans[2] //========================================================================= public static void calc_VENUS(double T,double ans[]) { double rm,bt,r; rm = .0004 * Math.cos( pai * norm( 34 + 54076 * T ) ); rm += .0005 * Math.cos( pai * norm( 110 + 3035 * T ) ); rm += .0007 * Math.cos( pai * norm( 351 + 175554 * T ) ); rm += .0007 * Math.cos( pai * norm( 70 + 58519 * T ) ); rm += .0008 * Math.cos( pai * norm( 303 + 155 * T ) ); rm += .0008 * Math.cos( pai * norm( 239 + 55483 * T ) ); rm += .0010 * Math.cos( pai * norm( 244 + 9038 * T ) ); rm += .0014 * Math.cos( pai * norm( 172 + 22519 * T ) ); rm += .0020 * Math.cos( pai * norm( 159 + 67556 * T ) ); rm += .0032 * Math.cos( pai * norm( 254 + 45038 * T ) ); rm += .0033 * Math.cos( pai * norm( 11 + 117036 * T ) ); rm += .0503 * Math.cos( pai * norm( 300.6 + 117036.6 * T ) ); rm -= .0054* T * Math.cos( pai * norm( 320.41 + 58517.81 * T ) ); rm += .7761 * Math.cos( pai * norm( 320.41 + 58517.81 * T ) ); rm += norm( 181.9793 + 58519.2125 * T ); bt = .0005 * Math.cos( pai * norm( 46 + 175555 * T ) ); bt += .0230 * Math.cos( pai * norm( 65.7 + 117036.1 * T ) ); bt += .0230 * Math.cos( pai * norm( 144.9 + 0.5 * T ) ); bt += .0010 * T * Math.cos( pai * norm( 15.299 + 58518.312 * T ) ); bt += 3.3939 * Math.cos( pai * norm( 15.299 + 58518.312 * T ) ); r = .000004 * Math.cos( pai * norm( 121 + 55483 * T ) ); r += .000014 * Math.cos( pai * norm( 69 + 67556 * T ) ); r += .000016 * Math.cos( pai * norm( 164 + 45038 * T ) ); r += .000017 * Math.cos( pai * norm( 281 + 117036 * T ) ); r -= .000034 * T * Math.cos( pai * norm( 230.41 + 58517.81 * T ) ); r += .004899 * Math.cos( pai * norm( 230.41 + 58517.81 * T ) ) + 0.723348; ans[0] = rm; ans[1] = bt; ans[2] = r; } //========================================================================= // 火星の日心黄経(λ)、黄緯(β)、動径(r)を計算する // 引数  .... J2000.0からの経過ユリウス世紀 T // 戻り値 .... 黄経、黄緯(λ,β)(度)、動径(r)(au) ans[0],ans[1],ans[2] //========================================================================= public static void calc_MARS(double T,double ans[]) { double rm,bt,r; rm = .0003 * Math.cos( pai * norm( 214 + 6842 * T ) ); rm += .0003 * Math.cos( pai * norm( 179 + 48316 * T ) ); rm += .0003 * Math.cos( pai * norm( 21 + 76562 * T ) ); rm += .0003 * Math.cos( pai * norm( 256 + 10017 * T ) ); rm += .0004 * Math.cos( pai * norm( 28 + 17918 * T ) ); rm += .0004 * Math.cos( pai * norm( 220 + 6069 * T ) ); rm += .0004 * Math.cos( pai * norm( 229 + 895 * T ) ); rm += .0005 * Math.cos( pai * norm( 53 + 21421 * T ) ); rm += .0005 * Math.cos( pai * norm( 137 + 16696 * T ) ); rm += .0006 * Math.cos( pai * norm( 205 + 51350 * T ) ); rm += .0007 * Math.cos( pai * norm( 166 + 12298 * T ) ); rm += .0007 * Math.cos( pai * norm( 208 + 29176 * T ) ); rm += .0009 * Math.cos( pai * norm( 167 + 10036 * T ) ); rm += .0009 * Math.cos( pai * norm( 67 + 35245 * T ) ); rm += .0010 * Math.cos( pai * norm( 39 + 3035 * T ) ); rm += .0013 * Math.cos( pai * norm( 290 + 4561 * T ) ); rm += .0018 * Math.cos( pai * norm( 50 + 1098 * T ) ); rm += .0019 * Math.cos( pai * norm( 95 + 14579 * T ) ); rm += .0023 * Math.cos( pai * norm( 13 + 16859 * T ) ); rm += .0028 * Math.cos( pai * norm( 1 + 57422 * T ) ); rm += .0028 * Math.cos( pai * norm( 142 + 19142 * T ) ); rm += .0038 * Math.cos( pai * norm( 21 + 2281 * T ) ); rm += .0045 * Math.cos( pai * norm( 191 + 32211 * T ) ); rm += .0047 * Math.cos( pai * norm( 348 + 76559 * T ) ); rm += .0060 * Math.cos( pai * norm( 168 + 13071 * T ) ); rm += .0070 * Math.cos( pai * norm( 48 + 16105 * T ) ); rm += .0037 * T * Math.cos( pai * norm( 180 + 0 * T ) ); rm += .0140 * Math.cos( pai * norm( 180 + 0 * T ) ); rm += .0144 * Math.cos( pai * norm( 342 + 38282 * T ) ); rm += .0147 * Math.cos( pai * norm( 336 + 19 * T ) ); rm += .0504 * Math.cos( pai * norm( 328.2 + 57419.6 * T ) ); rm += .0012 * T * Math.cos( pai * norm( 308.78 + 38279.71 * T ) ); rm += .6227 * Math.cos( pai * norm( 308.78 + 38279.71 * T ) ); rm += .0105 * T * Math.cos( pai * norm( 289.388 + 19139.859 * T ) ); rm += 10.6919 * Math.cos( pai * norm( 289.388 + 19139.859 * T ) ); rm += norm( 355.4472 + 19141.6999 * T ); bt = .0020 * Math.cos( pai * norm( 274 + 76561 * T ) ); bt += .0021 * Math.cos( pai * norm( 3 + 19139 * T ) ); bt += .0179 * Math.cos( pai * norm( 254.7 + 57420.6 * T ) ); bt += .1709 * Math.cos( pai * norm( 235.28 + 38280.79 * T ) ); bt += .1727 * Math.cos( pai * norm( 16.50 + 1.07 * T ) ); bt -= .0007 * T * Math.cos( pai * norm( 215.876 + 19140.925 * T ) ); bt += 1.8334 * Math.cos( pai * norm( 215.876 + 19140.925 * T ) ); r = .000008 * Math.cos( pai * norm( 311 + 2281 * T ) ); r += .000009 * Math.cos( pai * norm( 89 + 48316 * T ) ); r += .000010 * Math.cos( pai * norm( 338 + 35245 * T ) ); r += .000013 * Math.cos( pai * norm( 118 + 29176 * T ) ); r += .000023 * Math.cos( pai * norm( 3 + 14579 * T ) ); r += .000024 * Math.cos( pai * norm( 284 + 16859 * T ) ); r += .000035 * Math.cos( pai * norm( 258 + 76559 * T ) ); r += .000055 * Math.cos( pai * norm( 77 + 13071 * T ) ); r += .000072 * Math.cos( pai * norm( 103 + 32211 * T ) ); r += .000080 * Math.cos( pai * norm( 317 + 16105 * T ) ); r += .000455 * Math.cos( pai * norm( 238.2 + 57419.6 * T ) ); r += .000013 * T * Math.cos( pai * norm( 218.78 + 38279.72 * T ) ); r += .006606 * Math.cos( pai * norm( 218.78 + 38279.72 * T ) ); r += .000139 * T * Math.cos( pai * norm( 199.388 + 19139.859 * T ) ); r += .141850 * Math.cos( pai * norm( 199.388 + 19139.859 * T ) ); r += norm( 1.530339 + 0.000013 * T ); ans[0] = rm; ans[1] = bt; ans[2] = r; } //========================================================================= // 木星の日心黄経(λ)、黄緯(β)、動径(r)を計算する // 引数  .... J2000.0からの経過ユリウス世紀 T // 戻り値 .... 黄経、黄緯(λ,β)(度)、動径(r)(au) ans[0],ans[1],ans[2] //========================================================================= public static void calc_JUPITER(double T,double ans[]) { double rm,bt,r; rm = .00003 * Math.cos( pai * norm( 195 + 12691 * T ) ); rm += .00009 * Math.cos( pai * norm( 251 + 10324 * T ) ); rm += .00010 * Math.cos( pai * norm( 174.0 + 10902.8 * T ) ); rm += .00012 * Math.cos( pai * norm( 258.5 + 7779.9 * T ) ); rm += .00028 * T * Math.cos( pai * norm( 197.2 + 9087.8 * T ) ); rm += .00029 * Math.cos( pai * norm( 270.6 + 9704.4 * T ) ); rm += .00035 * Math.cos( pai * norm( 241.5 + 8473.4 * T ) ); rm += .00039 * Math.cos( pai * norm( 345.5 + 12131.7 * T ) ); rm += .00094 * Math.cos( pai * norm( 221.3 + 7251.8 * T ) ); rm += .00224 * Math.cos( pai * norm( 54.64 + 1466.26 * T ) ); rm += .00335 * Math.cos( pai * norm( 244.10 + 1284.47 * T ) ); rm += .00343 * Math.cos( pai * norm( 259.11 + 6666.05 * T ) ); rm += .00397 * Math.cos( pai * norm( 294.77 + 4206.81 * T ) ); rm += .00482 * Math.cos( pai * norm( 273.36 + 4730.71 * T ) ); rm += .00501 * Math.cos( pai * norm( 206.94 + 5449.93 * T ) ); rm += .00607 * Math.cos( pai * norm( 88.37 + 4759.11 * T ) ); rm += .00699 * Math.cos( pai * norm( 198.68 + 2920.69 * T ) ); rm += .00757 * Math.cos( pai * norm( 327.94 + 9107.13 * T ) ); rm += .02120 * Math.cos( pai * norm( 73.665 + 1822.117 * T ) ); rm += .02274 * Math.cos( pai * norm( 135.412 + 2405.806 * T ) ); rm += .03557 * Math.cos( pai * norm( 191.685 + 596.267 * T ) ); rm += .04370 * T * Math.cos( pai * norm( 218.916 + 6071.843 * T ) ); rm += .05532 * Math.cos( pai * norm( 237.453 + 3624.312 * T ) ); rm += .17575 * Math.cos( pai * norm( 309.5012 + 6083.2578 * T ) ); rm += 5.54603 * Math.cos( pai * norm( 289.68429 + 3034.53346 * T ) ); rm += norm( 34.39356 + 3036.08406 * T ); bt = .00006 * Math.cos( pai * norm( 181 + 799 * T ) ); bt += .00006 * Math.cos( pai * norm( 132 + 8494 * T ) ); bt += .00007 * Math.cos( pai * norm( 191 + 9699 * T ) ); bt += .00011 * Math.cos( pai * norm( 267.9 + 4231.5 * T ) ); bt += .00020 * Math.cos( pai * norm( 262.6 + 12136.2 * T ) ); bt += .00028 * Math.cos( pai * norm( 75.7 + 5432.9 * T ) ); bt += .00031 * Math.cos( pai * norm( 266.8 + 562.9 * T ) ); bt += .00033 * Math.cos( pai * norm( 0.8 + 4850.1 * T ) ); bt += .00038 * Math.cos( pai * norm( 214.6 + 1225.1 * T ) ); bt += .00045 * Math.cos( pai * norm( 122.2 + 3627.8 * T ) ); bt += .00051 * T * Math.cos( pai * norm( 180.0 + 0.0 * T ) ); bt += .00063 * Math.cos( pai * norm( 171.6 + 6654.4 * T ) ); bt += .00072 * Math.cos( pai * norm( 113.1 + 2424.7 * T ) ); bt += .00106 * T * Math.cos( pai * norm( 339.44 + 6049.97 * T ) ); bt += .00185 * T * Math.cos( pai * norm( 152.84 + 9115.63 * T ) ); bt += .00347 * Math.cos( pai * norm( 243.22 + 9134.65 * T ) ); bt += .02141 * T * Math.cos( pai * norm( 309.356 + 3034.269 * T ) ); bt += .06295 * Math.cos( pai * norm( 223.544 + 6068.687 * T ) ); bt += 1.30086 * Math.cos( pai * norm( 203.91874 + 3034.12633 * T ) ) + 0.06299; r = .000005 * Math.cos( pai * norm( 138 + 9560 * T ) ); r += .000005 * Math.cos( pai * norm( 164 + 10256 * T ) ); r += .000009 * Math.cos( pai * norm( 84 + 10896 * T ) ); r += .000009 * Math.cos( pai * norm( 249 + 12122 * T ) ); r += .000012 * Math.cos( pai * norm( 175 + 7830 * T ) ); r += .000016 * Math.cos( pai * norm( 167 + 8482 * T ) ); r += .000017 * Math.cos( pai * norm( 288 + 1517 * T ) ); r += .000030 * T * Math.cos( pai * norm( 180 + 0.0 * T ) ); r += .000057 * T * Math.cos( pai * norm( 276 + 9479 * T ) ); r += .000061 * Math.cos( pai * norm( 334 + 4840 * T ) ); r += .000061 * Math.cos( pai * norm( 169 + 1190 * T ) ); r += .000069 * Math.cos( pai * norm( 125 + 7258 * T ) ); r += .000129 * Math.cos( pai * norm( 171 + 6671 * T ) ); r += .000212 * Math.cos( pai * norm( 233 + 9113 * T ) ); r += .000224 * Math.cos( pai * norm( 205 + 4215 * T ) ); r += .000299 * Math.cos( pai * norm( 124 + 5444 * T ) ); r += .000306 * Math.cos( pai * norm( 97 + 601 * T ) ); r += .000309 * T * Math.cos( pai * norm( 312 + 6090 * T ) ); r += .000612 * T * Math.cos( pai * norm( 19 + 2968 * T ) ); r += .000635 * Math.cos( pai * norm( 344 + 1818 * T ) ); r += .000880 * Math.cos( pai * norm( 46 + 2406 * T ) ); r += .002802 * Math.cos( pai * norm( 147.7 + 3624.5 * T ) ); r += .006134 * Math.cos( pai * norm( 219.0 + 6066.1 * T ) ); r += .251681 * Math.cos( pai * norm( 199.614 + 3034.534 * T ) ) + 5.209105; ans[0] = rm; ans[1] = bt; ans[2] = r; } //========================================================================= // 土星の日心黄経(λ)、黄緯(β)、動径(r)を計算する // 引数  .... J2000.0からの経過ユリウス世紀 T // 戻り値 .... 黄経、黄緯(λ,β)(度)、動径(r)(au) ans[0],ans[1],ans[2] //========================================================================= public static void calc_SATURN(double T,double ans[]) { double rm,bt,r; rm = .00004 * Math.cos( pai * norm( 79 + 8461 * T ) ); rm += .00005 * Math.cos( pai * norm( 68 + 9616 * T ) ); rm += .00007 * Math.cos( pai * norm( 354 + 10868 * T ) ); rm += .00009 * Math.cos( pai * norm( 69 + 6619 * T ) ); rm += .00010 * Math.cos( pai * norm( 92 + 6055 * T ) ); rm += .00011 * Math.cos( pai * norm( 74.1 + 7825.9 * T ) ); rm += .00018 * Math.cos( pai * norm( 13.7 + 9058.0 * T ) ); rm += .00029 * Math.cos( pai * norm( 94.9 + 6009.6 * T ) ); rm += .00040 * Math.cos( pai * norm( 147.7 + 4516.9 * T ) ); rm += .00054 * Math.cos( pai * norm( 29.7 + 7243.0 * T ) ); rm += .00056 * Math.cos( pai * norm( 316.6 + 4729.7 * T ) ); rm += .00094 * Math.cos( pai * norm( 97.3 + 4198.7 * T ) ); rm += .00184 * Math.cos( pai * norm( 44.09 + 5435.18 * T ) ); rm += .00215 * Math.cos( pai * norm( 22.82 + 3151.76 * T ) ); rm += .00857 * Math.cos( pai * norm( 334.19 + 1884.95 * T ) ); rm += .01138 * Math.cos( pai * norm( 105.909 + 3816.622 * T ) ); rm += .03220 * T * Math.cos( pai * norm( 8.114 + 3731.729 * T ) ); rm += .11441 * Math.cos( pai * norm( 9.0137 + 597.5060 * T ) ); rm += .19720 * Math.cos( pai * norm( 187.9907 + 2310.5997 * T ) ); rm += .44141 * T * Math.cos( pai * norm( 279.0711 + 2380.3750 * T ) ); rm += 4.81254 * T * Math.cos( pai * norm( 317.43950 + 1200.76570 * T ) ); rm += 6.19608 * Math.cos( pai * norm( 227.52458 + 1178.39096 * T ) ); rm += norm( 49.97937 + 1224.04687 * T ); bt = .00017 * Math.cos( pai * norm( 79.5 + 4953.0 * T ) ); bt += .00039 * Math.cos( pai * norm( 64.0 + 4861.3 * T ) ); bt += .00055 * Math.cos( pai * norm( 321.0 + 3035.3 * T ) ); bt += .00064 * T * Math.cos( pai * norm( 28.8 + 3629.0 * T ) ); bt += .00230 * T * Math.cos( pai * norm( 251.99 + 2450.45 * T ) ); bt += .00277 * Math.cos( pai * norm( 303.12 + 1812.03 * T ) ); bt += .00305 * Math.cos( pai * norm( 296.69 + 437.68 * T ) ); bt += .00812 * Math.cos( pai * norm( 121.34 + 3673.28 * T ) ); bt += .00978 * T * Math.cos( pai * norm( 27.67 + 514.08 * T ) ); bt += .04858; bt += .05938 * T * Math.cos( pai * norm( 113.635 + 1223.005 * T ) ); bt += .13425 * Math.cos( pai * norm( 163.7721 + 2445.2128 * T ) ); bt += 2.47972 * Math.cos( pai * norm( 206.33867 + 1224.56984 * T ) ); r = .000004 * Math.cos( pai * norm( 244 + 12669 * T ) ); r += .000007 * Math.cos( pai * norm( 15 + 8336 * T ) ); r += .000009 * Math.cos( pai * norm( 343 + 9610 * T ) ); r += .000012 * Math.cos( pai * norm( 263 + 10878 * T ) ); r += .000014 * Math.cos( pai * norm( 20 + 6628 * T ) ); r += .000027 * Math.cos( pai * norm( 1 + 7826 * T ) ); r += .000032 * Math.cos( pai * norm( 281 + 9051 * T ) ); r += .000055 * Math.cos( pai * norm( 15 + 6017 * T ) ); r += .000096 * Math.cos( pai * norm( 298 + 7245 * T ) ); r += .000119 * Math.cos( pai * norm( 22 + 4379 * T ) ); r += .000136 * Math.cos( pai * norm( 358 + 4900 * T ) ); r += .000166 * Math.cos( pai * norm( 160 + 3228 * T ) ); r += .000215 * Math.cos( pai * norm( 32 + 3941 * T ) ); r += .000314 * Math.cos( pai * norm( 313 + 5440 * T ) ); r += .000555 * T * Math.cos( pai * norm( 180.0 + 0.0 * T ) ); r += .001238 * T * Math.cos( pai * norm( 225.3 + 2600.0 * T ) ); r += .001556 * Math.cos( pai * norm( 347.2 + 3612.4 * T ) ); r += .005400 * Math.cos( pai * norm( 277.3 + 586.3 * T ) ); r += .008245 * Math.cos( pai * norm( 341.2 + 1814.6 * T ) ); r += .014780 * Math.cos( pai * norm( 92.09 + 2442.07 * T ) ); r += .314172 * T * Math.cos( pai * norm( 227.317 + 1205.098 * T ) ); r += .515185 * Math.cos( pai * norm( 137.576 + 1188.045 * T ) ) + 9.554001; ans[0] = rm; ans[1] = bt; ans[2] = r; } //========================================================================= // 天王星の日心黄経(λ)、黄緯(β)、動径(r)を計算する // 引数  .... J2000.0からの経過ユリウス世紀 T // 戻り値 .... 黄経、黄緯(λ,β)(度)、動径(r)(au) ans[0],ans[1],ans[2] //========================================================================= public static void calc_URANUS(double T,double ans[]) { double rm,bt,r; rm = .00014 * Math.cos( pai * norm( 308.1 + 3157.9 * T ) ); rm += .00015 * T * Math.cos( pai * norm( 313.4 + 3798.6 * T ) ); rm += .00017 * Math.cos( pai * norm( 321.9 + 2873.2 * T ) ); rm += .00017 * Math.cos( pai * norm( 183.6 + 2356.6 * T ) ); rm += .00036 * Math.cos( pai * norm( 10.4 + 5647.4 * T ) ); rm += .00090 * Math.cos( pai * norm( 247.7 + 1968.3 * T ) ); rm += .01475 * Math.cos( pai * norm( 351.028 + 2608.702 * T ) ); rm += .12397 * Math.cos( pai * norm( 354.5935 + 1065.1192 * T ) ); rm += .58964 * Math.cos( pai * norm( 188.3245 + 919.0429 * T ) ); rm += 2.69325 * T * Math.cos( pai * norm( 317.76510 + 597.77389 * T ) ); rm += 3.20671 * T * Math.cos( pai * norm( 114.02740 + 705.15539 * T ) ); rm += 5.35857 * Math.cos( pai * norm( 48.85031 + 460.61987 * T ) ); rm += norm( 313.33676 + 428.72880 * T ); bt = .00025 * Math.cos( pai * norm( 194.2 + 3030.9 * T ) ); bt += .00036 * T * Math.cos( pai * norm( 263.0 + 1526.5 * T ) ); bt += .02997 * Math.cos( pai * norm( 180.0 + 0.0 * T ) ); bt += .13490 * Math.cos( pai * norm( 83.3517 + 998.0302 * T ) ); bt += .56518 * T * Math.cos( pai * norm( 354.9571 + 892.2869 * T ) ); bt += .67756 * Math.cos( pai * norm( 273.6644 + 652.9504 * T ) ); bt += 1.15483 * Math.cos( pai * norm( 128.15303 + 419.91739 * T ) ); bt += 1.78488 * T * Math.cos( pai * norm( 188.32394 + 507.52281 * T ) ); r = .000120 * Math.cos( pai * norm( 100 + 5652 * T ) ); r += .000205 * Math.cos( pai * norm( 37 + 3104 * T ) ); r += .000223 * Math.cos( pai * norm( 321 + 2120 * T ) ); r += .000656 * Math.cos( pai * norm( 202 + 1527 * T ) ); r += .004897 * Math.cos( pai * norm( 80.4 + 2613.7 * T ) ); r += .042617 * T * Math.cos( pai * norm( 0.0 + 0.0 * T ) ); r += .062710 * Math.cos( pai * norm( 67.99 + 799.95 * T ) ); r += .166685 * T * Math.cos( pai * norm( 307.419 + 702.024 * T ) ); r += .361949 * T * Math.cos( pai * norm( 19.879 + 440.702 * T ) ); r += .905790 * Math.cos( pai * norm( 320.313 + 408.729 * T ) ); r += 19.203034; ans[0] = rm; ans[1] = bt; ans[2] = r; } //========================================================================= // 海王星の日心黄経(λ)、黄緯(β)、動径(r)を計算する // 引数  .... J2000.0からの経過ユリウス世紀 T // 戻り値 .... 黄経、黄緯(λ,β)(度)、動径(r)(au) ans[0],ans[1],ans[2] //========================================================================= public static void calc_NEPTURN(double T,double ans[]) { double rm,bt,r; rm = .00023 * Math.cos( pai * norm( 19.2 + 5851.6 * T ) ); rm += .00225 * Math.cos( pai * norm( 127.61 + 2279.43 * T ) ); rm += .00235 * Math.cos( pai * norm( 309.35 + 2266.50 * T ) ); rm += .00945 * Math.cos( pai * norm( 0.09 + 2815.89 * T ) ); rm += .01344 * Math.cos( pai * norm( 50.826 + 986.281 * T ) ); rm += .02928 * T * Math.cos( pai * norm( 342.114 + 904.371 * T ) ); rm += .04403 * T * Math.cos( pai * norm( 332.797 + 684.128 * T ) ); rm += .97450 * Math.cos( pai * norm( 167.7269 + 221.3904 * T ) ); rm += norm( -55.13323 + 219.93503 * T ); bt = .00012 * Math.cos( pai * norm( 243.9 + 3035.0 * T ) ); bt += .00015 * Math.cos( pai * norm( 187.5 + 2596.7 * T ) ); bt += .00015 * Math.cos( pai * norm( 224.7 + 1107.1 * T ) ); bt += .01366 * Math.cos( pai * norm( 338.864 + 447.128 * T ) ); bt += 1.76958 * Math.cos( pai * norm( 83.11018 + 218.87906 * T ) ); bt += 0.01725; r = .000120 * Math.cos( pai * norm( 111 + 5845 * T ) ); r += .002579 * Math.cos( pai * norm( 104.0 + 1025.1 * T ) ); r += .003364 * Math.cos( pai * norm( 308.1 + 524.0 * T ) ); r += .004944 * Math.cos( pai * norm( 90.1 + 2815.4 * T ) ); r += .009784 * T * Math.cos( pai * norm( 195.7 + 515.2 * T ) ); r += .260457 * Math.cos( pai * norm( 79.994 + 222.371 * T ) ); r += 30.073033; ans[0] = rm; ans[1] = bt; ans[2] = r; } //========================================================================= // 冥王星の日心黄経(λ)、黄緯(β)、動径(r)を計算する // 引数  .... J2000.0からの経過ユリウス世紀 T // 戻り値 .... 黄経、黄緯(λ,β)(度)、動径(r)(au) ans[0],ans[1],ans[2] //========================================================================= public static void calc_PLUTO(double T,double ans[]) { double rm,bt,r; rm = .00013 * Math.cos( pai * norm( 293.0 + 3288.8 * T ) ); rm += .00022 * Math.cos( pai * norm( 77.9 + 5861.8 * T ) ); rm += .00145 * Math.cos( pai * norm( 19.01 + 2488.14 * T ) ); rm += .00590 * Math.cos( pai * norm( 112.91 + 1306.75 * T ) ); rm += .00861 * Math.cos( pai * norm( 60.35 + 2836.46 * T ) ); rm += .07886 * Math.cos( pai * norm( 41.989 + 941.622 * T ) ); rm += 1.18379 * Math.cos( pai * norm( 351.67676 + 551.34710 * T ) ); rm += 15.8108 * Math.cos( pai * norm( 298.348019 + 246.556453 * T ) ); rm += norm( 241.82574 + 179.09519 * T ); bt = .00042 * Math.cos( pai * norm( 254.2 + 2342.3 * T ) ); bt += .00090 * Math.cos( pai * norm( 213.7 + 1532.6 * T ) ); bt += .00098 * Math.cos( pai * norm( 18.8 + 3055.6 * T ) ); bt += .00119 * Math.cos( pai * norm( 293.06 + 2658.22 * T ) ); bt += .01855 * Math.cos( pai * norm( 146.660 + 1089.202 * T ) ); bt += .26775 * Math.cos( pai * norm( 105.0840 + 713.1227 * T ) ); bt += 2.45310 * Math.cos( pai * norm( 66.15350 + 415.60630 * T ) ); bt += 17.04550 * Math.cos( pai * norm( 42.574982 + 172.554318 * T ) ); bt += -2.30285; r = .000116 * Math.cos( pai * norm( 169 + 5860 * T ) ); r += .000390 * Math.cos( pai * norm( 15 + 3188 * T ) ); r += .001188 * Math.cos( pai * norm( 114.1 + 1748.0 * T ) ); r += .002543 * T * Math.cos( pai * norm( 199.5 + 2196.1 * T ) ); r += .004902 * Math.cos( pai * norm( 149.4 + 2831.6 * T ) ); r += .007619 * T * Math.cos( pai * norm( 31.0 + 1425.9 * T ) ); r += .008426 * Math.cos( pai * norm( 252.9 + 909.8 * T ) ); r += .333884 * Math.cos( pai * norm( 228.717 + 475.963 * T ) ); r += 8.670489 * Math.cos( pai * norm( 198.4973 + 181.3383 * T ) ); r += 38.662489; ans[0] = rm; ans[1] = bt; ans[2] = r; } } // end of SkyPlanet