´ÞÀÇ À§Ä¡ÀÇ °è»ê


ÇÔ¼ö¸í
lunarPos  ¿ùÀÇ È²°æ, ȲÀ§, ¹× Áö½É °Å¸®¸¦ °è»êÇÑ´Ù
Çü½Ä
long solarPos(double *lng, double *lat, long j, double d);
Àμö
lng  (Ãâ·Â) Ȳ°æ(´ÜÀ§, ¹ø)
lat  (Ãâ·Â) ȲÀ§(´ÜÀ§, ¹ø)
j    (ÀÔ·Â) ¼¼°è Ç¥ÁؽúÎÅÍ È¯»êÇÑ À¯¸®¿ì½ºÀÏÀÇ Á¤¼ö ºÎºÐ
d    (ÀÔ·Â) ¼¼°è Ç¥ÁؽúÎÅÍ È¯»êÇÑ À¯¸®¿ì½ºÀÏÀÇ ¼Ò¼ö ºÎºÐ
ÇÔ¼öÄ¡
Áö½É °Å¸®(´Þ¡¤Å¾ç Á߽ɰ£ÀÇ °Å¸®)(´ÜÀ§, ų·Î¡¤¹ÌÅÍ)
ÁÖÀÇ »çÇ×
¼öÇÐ ¶óÀ̺귯¸® cos()°¡ ÇÊ¿ä.

¿ë·Ê(lunarPos-test.c )
double lng, lat;
solarPos(&lng, &lat, 2450266L. 0.5);

ÇÁ·Î±×·¥(lunarPos.c )
long lunarPos(double *lng, double *lat, long j, double d)
{
    typedef struct { double k, a, b; } TBL;
    static TBL ln[61] = {
    { 6.2888, 477198.868, 44.963 },{ 1.274,  413335.35,  10.74 },
    { 0.6583, 890534.22, 145.7  }, { 0.2136, 954397.74, 179.93 },
    { 0.1851,  35999.05,  87.53 }, { 0.1144, 966404.0,  276.5  },
    { 0.0588,  63863.5,  124.2  }, { 0.0571, 377336.3,   13.2  },
    { 0.0533, 1367733.1,  280.7  }, { 0.0458, 854535.2,  148.2  },
    { 0.0409, 441199.8,   47.4  }, { 0.0347, 445267.1,   27.9  },
    { 0.0304, 513179.9,  222.5  }, { 0.0154,  75870.0,   41.0  },
    { 0.0125, 1443603.0,   52.0  }, { 0.0110, 489205.0,  142.0  },
    { 0.0107, 1303870.0,  246.0  }, { 0.0100, 1431597.0,  315.0  },
    { 0.0085, 826671.0,  111.0  }, { 0.0079, 449334.0,  188.0  },
    { 0.0068, 926533.0,  323.0  }, { 0.0052,  31932.0,  107.0  },
    { 0.0050, 481266.0,  205.0  }, { 0.0040, 1331734.0,  283.0  },
    { 0.0040, 1844932.0,   56.0  }, { 0.0040,    133.0,   29.0  },
    { 0.0038, 1781068.0,   21.0  }, { 0.0037, 541062.0,  259.0  },
    { 0.0028,   1934.0,  145.0  }, { 0.0027, 918399.0,  182.0  },
    { 0.0026, 1379739.0,   17.0  }, { 0.0024,  99863.0,  122.0  },
    { 0.0023, 922466.0,  163.0  }, { 0.0022, 818536.0,  151.0  },
    { 0.0021, 990397.0,  357.0  }, { 0.0021,  71998.0,   85.0  },
    { 0.0021, 341337.0,   16.0  }, { 0.0018, 401329.0,  274.0  },
    { 0.0016, 1856938.0,  152.0  }, { 0.0012, 1267871.0,  249.0  },
    { 0.0011, 1920802.0,  186.0  }, { 0.0009, 858602.0,  129.0  },
    { 0.0008, 1403732.0,   98.0  }, { 0.0007, 790672.0,  114.0  },
    { 0.0007, 405201.0,   50.0  }, { 0.0007, 485333.0,  186.0  },
    { 0.0007,  27864.0,  127.0  }, { 0.0006, 111869.0,   38.0  },
    { 0.0006, 2258267.0,  156.0  }, { 0.0005, 1908795.0,   90.0  },
    { 0.0005, 1745069.0,   24.0  }, { 0.0005, 509131.0,  242.0  },
    { 0.0004,  39871.0,  223.0  }, { 0.0004,  12006.0,  187.0  },
    { 0.0003, 958465.0,  340.0  }, { 0.0003, 381404.0,  354.0  },
    { 0.0003, 349472.0,  337.0  }, { 0.0003, 1808933.0,   58.0  },
    { 0.0003, 549197.0,  220.0  }, { 0.0003,   4067.0,   70.0  },
    { 0.0003, 2322131.0,  191.0  }};
    static TBL la[45] = {
    { 5.1281, 483202.019,  3.273}, { 0.2806, 960400.89, 138.24 },
    { 0.2777,   6003.15,  48.31 }, { 0.1733, 407332.20,  52.43 },
    { 0.0554, 896537.4,  104.0  }, { 0.0463,  69866.7,   82.5  },
    { 0.0326, 1373736.2,  239.0  }, { 0.0172, 1437599.8,  273.2  },
    { 0.0093, 884531.0,  187.0  }, { 0.0088, 471196.0,   87.0  },
    { 0.0082, 371333.0,   55.0  }, { 0.0043, 547066.0,  217.0  },
    { 0.0042, 1850935.0,   14.0  }, { 0.0034, 443331.0,  230.0  },
    { 0.0025, 860538.0,  106.0  }, { 0.0022, 481268.0,  308.0  }, 
    { 0.0022, 1337737.0,  241.0  }, { 0.0021, 105866.0,   80.0  }, 
    { 0.0019, 924402.0,  141.0  }, { 0.0018, 820668.0,  153.0  }, 
    { 0.0018, 519201.0,  181.0  }, { 0.0018, 1449606.0,   10.0  }, 
    { 0.0015,  42002.0,   46.0  }, { 0.0015, 928469.0,  121.0  }, 
    { 0.0015, 996400.0,  316.0  }, { 0.0014,  29996.0,  129.0  }, 
    { 0.0013, 447203.0,    6.0  }, { 0.0013,  37935.0,   65.0  }, 
    { 0.0011, 1914799.0,   48.0  }, { 0.0010, 1297866.0,  288.0  }, 
    { 0.0009, 1787072.0,  340.0  }, { 0.0008, 972407.0,  235.0  }, 
    { 0.0007, 1309873.0,  205.0  }, { 0.0006, 559072.0,  134.0  }, 
    { 0.0006, 1361730.0,  322.0  }, { 0.0005, 848532.0,  190.0  }, 
    { 0.0005, 419339.0,  149.0  }, { 0.0005, 948395.0,  222.0  }, 
    { 0.0004, 2328134.0,  149.0  }, { 0.0004, 1024264.0,  352.0  }, 
    { 0.0003, 932536.0,  282.0  }, { 0.0003, 1409735.0,   57.0  }, 
    { 0.0003, 2264270.0,  115.0  }, { 0.0003, 1814936.0,   16.0  }, 
    { 0.0003, 335334.0,   57.0  }};
    static TBL c[43] = {
    { 0.051820, 477198.868, 134.963}, { 0.009530, 413335.35, 100.74 },
    { 0.007842, 890534.22, 235.7  }, { 0.002824, 954397.74, 269.93 },
    { 0.000858, 1367733.1,   10.7  }, { 0.000531, 854535.2,  238.2  },
    { 0.000400, 377336.3,  103.2  }, { 0.000319, 441199.8,  137.4  },
    { 0.000271, 445267.0,  118.0  }, { 0.000263, 513198.0,  312.0  },
    { 0.000197, 489205.0,  232.0  }, { 0.000173, 1431597.0,   45.0  },
    { 0.000167, 1303870.0,  336.0  }, { 0.000111,  35999.0,  178.0  },
    { 0.000103, 826671.0,  201.0  }, { 0.000084,  63864.0,  214.0  },
    { 0.000083, 926533.0,   53.0  }, { 0.000078, 1844932.0,  146.0  },
    { 0.000073, 1781068.0,  111.0  }, { 0.000064, 1331734.0,   13.0  },
    { 0.000063, 449334.0,  278.0  }, { 0.000041, 481266.0,  295.0  },
    { 0.000034, 918399.0,  272.0  }, { 0.000033, 541062.0,  349.0  },
    { 0.000031, 922466.0,  253.0  }, { 0.000030,  75870.0,  131.0  },
    { 0.000029, 990397.0,   87.0  }, { 0.000026, 818536.0,  241.0  },
    { 0.000023, 553069.0,  266.0  }, { 0.000019, 1267871.0,  339.0  },
    { 0.000013, 1403732.0,  188.0  }, { 0.000013, 341337.0,  106.0  },
    { 0.000013, 401329.0,    4.0  }, { 0.000012, 2258267.0,  246.0  },
    { 0.000011, 1908795.0,  180.0  }, { 0.000011, 858602.0,  219.0  },
    { 0.000010, 1745069.0,  114.0  }, { 0.000009, 790672.0,  204.0  },
    { 0.000007, 2322131.0,  281.0  }, { 0.000007, 1808933.0,  148.0  },
    { 0.000006, 485333.0,  276.0  }, { 0.0000006, 99863.0,  212.0  },
    { 0.000005, 405201.0,  140.0  }};
    int i;
    double s, t, r;

    t = (j + d - 2451545.0)/36525. 0;
    s = 218.3162 + 481267.8809 * t;
    for (i = 0; i < 61; i++) {
        r = ln[i]. a * t + ln[i]. b;
        s += ln[i]. k * cos(r * 0.017453292519943);
    }
    while (s < 0) s += 360.0;
    while (s >= 360.0) s-= 360.0;
    *lng = s;
    
    s = 0.0;
    for (i = 0; i < 45; i++) {
        r = la[i]. a * t + la[i]. b;
        s += la[i]. k * cos(r * 0.017453292519943);
    }
    while (s < 0) s += 360.0;
    while (s >= 360.0) s-= 360.0;
    *lat = s;

    s = 0.950725;
    for (i = 0; i < 43; i++) {
        r = c[i]. a * t + c[i]. b;
        s += c[i]. k * cos(r * 0.017453292519943);
    }
    return (long)(6378.14 / sin(s * 0.017453292519943));
}
¼³¸í
¾î´À °¢ÀÇ ´ÞÀÇ È²°æ¡¤È²À§ ¹× Áö±¸±îÁöÀÇ °Å¸®¸¦ °è»êÇÑ´Ù.

žç°ú ´ÞÀÇ È²°æÀ» ¾Ë¸é(ÀÚ), ÃÊ»ý´Þ¡¤¸¸¿ù¡¤»óÇö¡¤ÇÏÇöÀÇ ÀϽø¦ °è»êÀ¸·Î ¿Â´Ù. À̰͵éÀº ´ÞÀÇ È²°æ°ú žçÀÇ È²°æÀÇ Â÷ÀÌ°¡ °¢°¢ 0¹ø, 180¹ø, 90¹ø, 270¹øÀÌ µÇ´Â ¼ø°£À̴ϱîÀÌ´Ù. ¶Ç, ÃÊ»ý´Þ½Ã¿¡ ´ÞÀÇ È²À§°¡ 0¿¡ °¡±î¿î °ª À̸é ÀϽÄÀÌ µÇ¾î, ¸¸¿ù½Ã¿¡¿Í °°ÀÌ °¡±î¿î °ªÀÌ¸é ¿ù½ÄÀÌ µÈ´Ù.

µ¡ºÙ¿© ÀϺ» ½Ã°£ JST¸¦ ¼¼°è Ç¥Áؽà UT·Î °íÄ¡·Á¸é , UT = JST - 9 ·Î °è»ê ÁÁ´Ù.

°ü·Ã ÇÔ¼ö
¼¼°è Ç¥Áؽø¦ À¯¸®¿ì½ºÀϷΠȯ»êÇÏ´Â, žçÀÇ À§Ä¡ÀÇ °è»ê