[misc] µÎ õü°£ °¢°Å¸® Å©±â °è»ê
Angular Separation
µÎ õü°£ °¢°Å¸® Å©±â´Â Stary Night ¿¡¼ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù¸¸, õü A(a1,b1)¿Í õü
B(a2,b2)ÀÇ °¢°Å¸®(d) Å©±â´Â
- °ø½Ä1) cos(d) = sin(b1)*sin(b2) + cos(b1)*cos(b2)*cos(a1-a2)
- °ø½Ä2) d = sqrt(cos(b)^2 * (a1-a2)^2 + (b1-b2)^2)
·Î ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. °¢°Å¸®°¡ 0(0¡Æ10' º¸´Ù ÀÛÀº)À̳ª 180¿¡ °¡±î¿ï °æ¿ì´Â (2)¹ø °ø½Ä
»ç¿ëÇÕ´Ï´Ù.
- a1,a2 ´Â Àû°æ ¶Ç´Â Ȳ°æ
- b1,b2 ´Â ÀûÀ§ ¶Ç´Â ȲÀ§
- b ´Â µÎ õüÀÇ Æò±Õ°ª (b1+b2)/2
* °ø½ÄÃâó: Astromical Algorithms. by Jean Meeus 1991, p.105 Angular Separation.
Âü°í·Î Àû°æ/ÀûÀ§´Â ½ºÅڶ󸮿ò¿¡¼ È®ÀÎÀÌ °¡´ÉÇÕ´Ï´Ù.
Àû°æ°ú ÀûÀ§´Â Æò¸éÁÂÇ¥°¡ ¾Æ´Ñ ±¸¸éÁÂÇ¥°ªÀ̹ǷΠÀ§¿Í °°ÀÌ ±¸¸é»ï°¢¹ýÀ¸·Î °è»êÇؾß
ÇÕ´Ï´Ù.
1. ÀÚ¹Ù½ºÅ©¸³Æ® ¹öÀü
http://linuxchannel.net/gaggle/angular.distance.html
2. PHP ¹öÀü
---------------------------------
function angular_dist($n='0h0m0s,0d0m0s', $m='0h0m0s,0d0m0s')
{
$n = trim($n);
$m = trim($m);
$p1 = preg_match('/.+-\d+/',$n) ? -1 : 1;
$p2 = preg_match('/.+-\d+/',$m) ? -1 : 1;
$n = preg_split('/[^\d.]+/',$n);
$m = preg_split('/[^\d.]+/',$m);
$a1 = deg2rad(($n[0] + $n[1]/60 + $n[2]/3600) * 15);
$b1 = deg2rad(($n[3] + $n[4]/60 + $n[5]/3600) * $p1);
$a2 = deg2rad(($m[0] + $m[1]/60 + $m[2]/3600) * 15);
$b2 = deg2rad(($m[3] + $m[4]/60 + $m[5]/3600) * $p2);
$diffa = abs($a1 - $a2);
$diffb = abs($b1 - $b2);
$cosd = sin($b1)*sin($b2) + cos($b1)*cos($b2)*cos($diffa);
$d = acos($cosd);
$d = rad2deg($d);
if($d<0.17 || $d>179.83)
{
$b = ($b1+$b2) / 2;
$d = sqrt(cos($b)*cos($b)*$diffa*$diffa + $diffb*$diffb);
$d = rad2deg($d);
}
return array
(
sprintf('%.2f',$d), // degrees of .2f format
floor($d), // degrees
floor(($d*60) % 60), // minute
round(($d*3600) % 60) // seconds
);
}
---------------------------------
|