자문자답 공부

[Directx11] 태양계 과제

Roka_is_back 2023. 12. 30.

1. 코드 리딩

2. 텍스쳐 입히기

3. 공전 , 자전

 

3 공전 자전

공전을 구현할 때 부모의 자전 속도와 다르게 공전 속도를 가져야 하기 때문에 어떻게 할까 고민하다가 
Unity 처럼 RotateAround를 구현하였다.

하지만 잘못된 구현이었다. ( 축이 돌아간 상태에서는 적용받지 못하고 , 코드가 너무 지저분해 보여서 맘에 들지 않음.)

 

여기서 다시 생각해 봤다.

아이디어 1 )  빈 오브젝트를 먼저 축을 바꾼 뒤 자식 오브젝트를 추가해서 y축을 회전 시킨다. (링크 1)

아이디어 2) RotateAround 함수를 구현하는데 기존 구현과 달리 pos , dir 정보를 가지고 빈 matrix에
타겟(부모) 회전 정보를 담은 뒤 자식 회전 정보를 곱한다. (링크 2 참고)

 

 

https://hangjastar.tistory.com/25

 

[Unity] RotateAround()를 이용한 빙글빙글 돌기

RotateAround()라는 함수를 사용하여 빙글빙글 도는 움직임을 만들어보겠습니다. Transform.RotateAround(Vector3 point, Vector3 axis, float angle) point = 기준점 axis = 움직이는 방향(대략적인 설명이다.) angle = 움직

hangjastar.tistory.com

https://inyongs.tistory.com/133

 

[ 3D Rotation ] 임의의 축으로 회전하기

임의의 축으로 회전하기 3D 환경에서 x축, y축, z축으로 회전하는 건 4X4 matrix로 할 수 있다. 그러면 임의의 축으로 회전하는 건 어떻게 할까? 순서 1. 임의의 축이 좌표축과 평행할 때 (Special Case) 회

inyongs.tistory.com

 

'자문자답 공부' 카테고리의 다른 글

Struct와 Class 의 차이  (0) 2024.02.23
Virtual 키워드  (0) 2024.02.21
[DirectX11] 공전, 자전, 부모 Mat  (2) 2024.01.02
strcpy(vector.data) / unicode length / 지역 변수 참조 리턴  (0) 2023.12.27
ThreadPool  (1) 2023.11.24

댓글