opengl을 이용해서 visual studio 9.0에서 행성의 자전과 공전을 구현하는 과제였다.
별건없었고 다만 행전과 공전 주기를 서로 연관되게 계산해주고
무엇보다 좌표계의 개념을 이해해서
각각의 행성이 각각의 좌표를 가지거나 혹은 서로 연관되어 위치된다는 것을 이해하는 과정이
약간 복잡했다.
개념이 약간 복잡했을뿐 구현자체는 코드길이도 길지않고 쉬웠다.
빨간색의 구로 표시된 고정된 태양이 원점(0,0,0)에 있다. 그리고 그 태양을 중심으로 반지름 r인 크기로 공전하는 지구(정육면체)가 있다. 그리고 지구를 중심으로 공전하는 인공위성(사면체)이 있다. 이 인공위성은 지구의 적도면을 기준으로 그 기울기를 계속 증가시키면서 공전한다. 그리고 지구 밖으로 태양을 중심으로 타원의 궤도를 회전하는 명왕성(팔면체)이 있다. 그 상대적인 위치는 다음과 같다. 초기위치는 태양, 지구, 인공위성, 명왕성이 태양의 오른쪽으로 정렬된 상태로 시작된다. 인공위성은 처음에서는 수평면과 평행하게 회전한다. 한국은 시작할 때 바로 태양을 보는 면에 있다고 가정한다.
프로그램 전체 루틴은 다음과 같다.
1. 화면에 반사광을 나타내주는 함수 init()
2. 3,4분면에 글자를 표시해주는 함수 부분
- void DisplayCharacter(int x, int y, char * string, ...)
3. h키를 눌렀을때 자동으로 애니메이션이 동작하도록 타이머를 이용하는 함수
- Mytimer(int x)
4. 행성들을 그리고 화면을 분할하여 4개분면으로 분할된 view 를 보여주는 부분
- void setViewport(int opt)
5. 그 외 화면 display() 함수와 main() 함수 부분이 있다.
'컴퓨터 공학 자료(학부) > OpenGL' 카테고리의 다른 글
3d max 파일 loader for OPENGL (0) | 2010.05.25 |
---|---|
그래픽스 MFC+openGL 연동 그림판 (0) | 2010.05.04 |
OpenGL+MFC 연동 그림판 참고 자료들 (0) | 2010.05.04 |
MFC - 다이얼로그 생성시 발생되는 메세지들... (0) | 2010.05.01 |
일리히트 비쥬얼스튜디오2008에서 사용시 (0) | 2010.03.23 |