함께 만드는 별빛 세상, 천문노트 · Since 2001

MatriXsLib 예제 프로그램을 올립니다.

이형철 2003-07-02 (수) 16:16 11406 2
목록
이전글 다음글

웹 아카이브(2020-10-23 기록)에서 복원한 글입니다. 일부 이미지나 첨부파일이 빠져 있을 수 있습니다.

  • MatriXsLib.zip
MatriXsLib 예제 프로그램을 올립니다.
다운로드 받아서 사용해 보시면 바로
MatriXsLib 라이브러리의 사용법을 알 수 있을 거에요! ^^;

모든 헤더 파일은 MatriXsLib.h 안에 들어있습니다.
우리 라이브러리 사용하실 분들은
#include MatriXsLib.h
하신 다음 그냥 각종 클래스들을 사용하시면 됩니다.(쉬워요!)

다운로드 받으셔서 Visual C++에서 연 다음에
MatriXsLib.cpp 파일에 있는 main()
함수를 띄워서 예제를 보시면 됩니다.

Visual C++에서 관련된 class를 누르시면 함수와 멤버들을 확인할 수 있습니다.
우리 프로젝트도 이파일을 기준으로 해서 확장하도록 하죠

그럼 소스 코드 나갑니다.

#include

#include "MatriXsLib.h"

void main()
{
/***************
JD를 계산하는 예
***************/
DateTime dt(2003, 7, 10, 6, 0, 0);
double jd = dt.GetJD();

/******************************************
UT나 GST, LST 등을 직접 알 때 선언하는 방법
******************************************/
// LCT를 하나 선언
LCT lct(2003, 7, 10, 6, 0, 0);

// GST를 하나 선언함, 위에서 구한 jd를 사용
GST gst(jd);

/*******************************
LCT, GST, UT, LST 간의 변환 방법
*******************************/
// 위치를 하나 선언
Location loc(Util::deg2rad(127.0), Util::deg2rad(37.0), +9.0);

// LCT로부터 UT를 구함
// 이 때 GMT와의 차이가 필요한데 위에서 선언한 loc 변수를 사용함
UT ut(lct, loc.m_dgmt);

// UT로부터 GST를 구함
GST gst2(ut);

LST lst(gst, loc.m_lon);

// 이 모든 것을 한 줄로 할 수 도 있음
LST lst2(lct, loc.m_dgmt, loc.m_lon);

/*********************
좌표계를 선언하는 방법
*********************/
// 고도 방위각으로부터 직접 horizon coordinates를 선언
Horizon hor(Util::deg2rad(6.0), Util::deg2rad(0));

// 적경, 적위값으로부터 직접 equatorial coordinates를 선언
Equatorial equ(Util::deg2rad(6.0), Util::deg2rad(0));

// 황경, 황위로부터 직접 ecliptic coordinates를 선언
Ecliptic ecl(Util::deg2rad(6.0), Util::deg2rad(0));

// 은경, 은위로부터 직접 galactic coordinates를 선언
Galactic gal(Util::deg2rad(6.0), Util::deg2rad(0));

/*******************
좌표계간의 변환 방법
*******************/
// 적도 좌표계로부터 지평 좌표계를 얻어옴
Equatorial equ2(hor, lst, loc.m_lat);

// euqatorial 좌표계에서 세차를 보정하는 방법
equ2.CorrectPrecession(2000, 1875);

/***********************************
Matrix를 이용한 좌표계간의 변환 방법
***********************************/
// 변환 행렬을 얻어옴
Matrix mat1 = Matrix::Ecl2Equ(ut);
Matrix mat2 = Matrix::Equ2Hor(lst, loc.m_lat);

// 합성 변환을 만듬
Matrix mat = mat1 * mat2;

// 드디어 변환
Horizon hor3 = mat * equ;

/**************************
태양의 위치를 계산하는 방법
**************************/
// 특정 시간의 태양을 생성, 모든 계산은 이 때 행해짐
Sun sun(ut);

// 지구 중심의 위치를 얻어옴, 즉, 현재 지구의 위치를 계산해서 뺌
Vector pos = sun.GetPositionG();

// 태양 중심의 위치를 얻어옴(항상 0, 0, 0)
Vector pos2 = sun.GetPositionH();

// GetPositionG와 GetPositionH 등의 함수는
// 제가 잘못 생각하고 설계한 것입니다.
// 모든 위치는 자신이 공전하고 있는 것을 중심으로 계산하는게 좋을 듯 합니다.

/************************
달의 위치를 계산하는 방법
************************/
// 특정 시간의 달을 생성, 모든 계산은 이 때 행해짐
Moon moon(ut);

// 지구 중심의 위치를 얻어옴
Vector pos3 = moon.GetPositionG();
}

지난번 모임은 어플리케이션 위주였고
라이브러리 팀도 언제 한번 모입시다~
그리고 게시판에 글 좀 써요~
질문이라던가 요청 같은 거라도!!

댓글 2

지도리2003-07-03 02:02

우왕.. 잘 만들었네 ^^
그래요 우리 한번 모이져...
제가 할 수 있는일이 있을런지 모르겠지만...
조금이나마 도움되겠져!!!
다들 모여여...
언제로 잡을깡??? ^^

스마일넷2003-07-03 22:22

소스란 참 어려운거야..;;

로그인하면 댓글을 쓸 수 있습니다.

무료 천문 라이브러리 - MatriXs

총 103건
번호제목글쓴이날짜조회
공지 MatriXsLib 1.0+7 이형철06-1523805
102 MatriXsLib 1.0+7 이형철06-1523805
101 안녕들하세요~^^+1 이도원06-228249
98 이렇게 좋은 소스가..^^+2 황태욱01-077881
97 요즘 다들 머하시나요?+5 이도원12-107667
96 c 를 공부하다가+5 이도원11-137293
95 Astronomical Algorithm..+4 김창환10-317663
94 침체기 같네요...+3 이도원09-227004
글쓰기