천문 프로그래밍과 관련된 이야기를 나눌 수 있는 곳입니다.
총 게시물 144건, 최근 0 건
   
각도변환문제 : 도(degree), 시(hour), 라디안(radian)
글쓴이 : 지용호 별님  (121.♡.140.207) 날짜 : 2009-04-15 (수) 13:13 조회 : 17930

여기서 다루는 문제는 천문 관련 계산할 때 반드시 숙지하고 있어야할 각도 변환에 관련된 것이다. 매우 기초적인 내용이다. 꼭 천문 계산이 아니더라도 수학계산을 위해 이러한 내용은 잘 알고 있어야 한다.

혹시 다음 값을 어떻게 읽는가?

  • 2h 44m 11.986s
  • 49°13′42.48″

아마도 대부분 사람들이 다음처럼 읽을 것이다.

  • 2시 44분 11.986초
  • 49도 13분 42.48초

2h 44m 11.986s 는 시(hour)이며, 49°13′42.48″는 도(degree)이다.

 

잘 알고 있는 사실이지만 24시간은 360도에 대응한다. 그리고 1시간은 15°에 대응한다. 또한 시간에서의 1분은 도에서 15분과 대응한다. 문제는 여기서 발생한다. 한국어로 번역할때 시간의 1분과 도의 1분은 명확히 다른 단위라는 것이다. 영문으로는 시간의 분은 minute를 쓰고 도에서의 분은 arcminute를 사용한다.

 

이러한 시간과 도의 차이를 잘 모르고 용어를 섞어쓰면 나중에 분명히 문제가 발생한다. 그래서 도와 시간의 표현에는 영어를 쓰는 것이 안전하다. 다음처럼 쓰자.

  • 2h = 2 hours 또는 2h
  • 44 m = 2 minutes 또는 2m
  • 11.986s = 11.986 seconds 또는 2 s
  • 49° = 49 degrees 또는 49 deg
  • 13′ = 13 arcminutes 또는 13 arcmin
  • 42.48″ = 42.48 arcseconds 또는 42.48 arcmin

아래값을 보자.

  • 1h 21m 23.2s
  • 1°21′23.2″

위 값은 둘다 1.3564 값을 가진다.(둘다 분에는 60을 곱하고 초에는 3600을 곱해서 시나 도에 더하면 된다.) 하지만 단위가 하나는 hours이고 하나는 degrees이다. 1h 21m 23.2s 를 각도로 표시하기 위해서는 15가 곱해져야 한다. 결과적으로 1.3564 h * 15°/h = 20.346°가 된다.

 

앞서 설명한 도와 시간은 사람이 보기에 편한 단위이다. 누구나 360도와 24시에 대해서 복잡하다는 느낌을 받는 사람은 없을 것이다. 하지만 수학적 계산을 할 때는 이러한 값을 사용할 수 없다. 수학적 계산을 위해서는 각도와 시간은 항상 라디안(radian)값으로 변환해야한다. 지름 1의 원의 둘레값으로 π=3.141592653… 이다. 이 값이 radian이다. 즉 지름과 원의 둘레값의 단위를 동일하게 봄으로써 수학적 계산을 가능하게 한다. 360도와 24시는 2π=6.2831853…와 대응한다.

 

각도를 표현하는 단위는 지금까지 살펴본 결과 도(degree), 시(hour), radian 이라는 것을 알았다. 천문학에서 이것 외에는 사용하지 않는다. 가령, 적경(Right Asension),적위(Declination)은 각각 시와 도를 사용한다. 앞서 설명했듯이 시와 도는 수학계산에는 적합하지 않으므로 radian으로 변환해야한다. 가령, cos, sin과 같은 수학함수를 이용할 때 도, 시 단위로는 계산할 수 없으므로 반드시 radian으로 변환한 다음에 사용해야한다.

 

천문 프로그래밍을 한다면 각도 단위 변환을 하기 위해 다음과 같은 방법으로 변환값을 미리 만들어 사용한다.

 

/**
 * Pi
 */
public static const PI:Number = 3.141592653589793238462643383279502884197;

/**
 * Pi * 2
 */
public static const TPI:Number	= 6.2831853071795864769252867665590;

/**
 * Half of PI
 */
public static const HPI:Number = 1.5707963267948966192313216916398;

/**
 * Math.sqrt(2);
 */
public static const SQRT2:Number = 1.5707963267948966192313216916395;

/**
 * Radian -> Degree
 */
public static const R2D:Number = 57.295779513082320876798154814105;

/**
 * Degree -> Radian
 */
public static const D2R:Number = 0.017453292519943295769236907684886;

/**
 * Arcsecond -> Radian
 */
public static const S2R:Number = 4.8481368110953599359e-6;

/**
 * Radian -> Arcsecond
 */
public static const R2S:Number = 206264.80624709635515647335733078; //3600 * 180/PI

/**
 * Arcminute -> Radian
 */
public static const M2R:Number = 2.9088820866572159615394846141477e-4; // 1/60 * PI /180

/**
 * Radian -> Arcminute
 */
public static const R2M:Number = 3437.7467707849392526078892888463; //60 * 180/PI

/**
 * Arcminute -> degree
 */
public static const M2D:Number = 1/60;

/**
 * degree -> Arcminute
 */
public static const D2M:Number = 60;

/**
 * Radian -> Hours
 */
public static const R2H:Number = 3.8197186342054880584532103209403;

/**
 * Hours -> Radian
 */
public static const H2R:Number = 0.26179938779914943653855361527329;

/**
 * Degree -> Hour
 */
public static const D2H:Number = 1/15;

/**
 * Hour -> Degree
 */
public static const H2D:Number = 15;

 

 

 

만약 시(hour)에서 도(degree)로 변환하려면 14h * H2D = 210 deg 가 된다. 이러한 방법을 이용해여 수학적 계산을 마무리 짓고 나온 결과값이 각도인 경우 그에 맞게 시(hour) 또는 도(degree)로 변경해주어 사람이 보기 편리하도록 만들어주면 되는 것이다.

 

글쓴이 : 지돌스타(http://jidolstar.com/blog/archives/1228 )

 

 


   

총 게시물 144건, 최근 0 건
번호 제목 글쓴이 날짜 조회 추천
144  음양력 변환 프로그램 CalTime 3.4 +1 김동빈별님 11-24 7091 0
143  현재 시간에 따른 태양, 달 위치 계산. +1 조재훈별님 08-30 6340 0
142  [DreamSpark] Microsoft의 정품 프로그램을 무료로 … +6 백승우별님 01-21 8224 0
141  일식 예측을 위한 태양과 달의 위치 계산 +1 이형철별님 11-21 10750 0
140  사이토구니치의 古天文學 번역판을 공개하며 +1 이형철별님 08-22 11151 2
139  [AstroDev의 C언어 강좌] 나왔다 Hello World!!! +3 유환용별님 07-01 8575 0
138  [AstroDev의 C언어 강좌] 컴퓨터 데이터 표현 방… 유환용별님 06-28 9844 0
137  IAU2000 장동 모델 +2 김창환별님 06-25 11766 0
136  [AstroDev의 C언어 강좌]메모리 안에서는 무슨일… +10 유환용별님 06-10 11921 0
135  [AstroDev의 C언어 강좌]우리는 무엇을 준비해야… +7 유환용별님 06-08 9817 0
134  [AstroDev의 C언어 강좌]우리는 무엇을 준비해야… +3 유환용별님 06-07 9393 0
133  [AstroDev의 C언어 강좌]C언어를 공부하기 전에 … +4 유환용별님 06-06 9982 0
132  IAU2006 세차 모델 +1 김창환별님 05-18 10560 0
131  각도변환문제 : 도(degree), 시(hour), 라디안(radia 지용호별님 04-15 17931 0
130  지구의 세차운동(歲差運動, Precession) 계산하… +5 지용호별님 04-14 14418 0
 1  2  3  4  5  6  7  8  9  10  맨끝
 
Since 2001.2.7 미래창조과학부 등록 비영리민간단체 천문노트. Copyright All rights reserved.
단체명 : 천문노트  |    고유번호 : 101-82-15888  |    대표자명 : 김태욱, 조우성  |    주소 : 138-804 서울특별시 송파구 가락동 93 금강빌딩 7층 710호  |    전화 : 02-543-3295  |    Fax : 02-6918-6888  |    통신판매신고번호 : 종로 제01-5696호  |    개인정보관리책임자 및 사이트관리자 : 지용호