나는 막대기를 만드는 데 OpenGL es를 사용하고 있는데 이것은 어리석은 질문처럼 보일 수 있지만 회전을 나타 내기 위해 쿼터니언을 사용할 때는 회전이 원점보다 다른 점 주위에 있도록하려면 어떻게해야합니까? 나는 단위 쿼터니언을 사용하는지 아닌지를 사용합니다. 내 생각 엔 회전 할 수 있고 회전 중심을 너무 바꿔서 단위 쿼터니언을 사용하지 않을 것입니다. 이것이 올바른 길입니까?quaternions for OpenGL ES
답변
주석 에서처럼, 비 단위 쿼터니언은 마술처럼 임의의 지점을 중심으로 회전하지 않습니다. 따라서 비 단위 쿼터니언을 사용할 필요가 없습니다. 회전 중심을 원점으로 변환하고 평소처럼 쿼터니언을 사용하여 원점을 중심으로 회전 한 다음 회전 중심으로 다시 변환해야합니다.
이 전체 변환을 하나의 수학적으로 깨끗한 구조로 나타내려면 이중 쿼터니언을 사용할 수 있지만 과장 될 것이라고 확신합니다.
내가 한 일은 실제로 매우 간단합니다. 나는 오일러 각을 쿼터니언으로 변환 한 후 쿼터니언을 그 점에 곱하여 회전을 적용했습니다. – Steve
예, 그렇습니까? 귀하의 질문에 당신은 임의의 지점에 대해 회전하도록 요청 했으므로 이제는 두 회전 사이에서이 회전을 감싸 야합니다. –
그것은 이상한 일입니다. 내 회전 중심이 (0, -2,0)이고 회전하려는 점이 (1,0,0)이라고 가정 해 봅시다. 내가해야 할 일은 나중에 (1, -2,0)로 변환하고 회전 중심이 (0,0,0)에서 (0, -2,0)으로 자동 이동합니다. y 축에 대해 반 시계 방향으로 점 (1, -2,0)을 90도 회전하면 (0,0,0)이 아닌 (0, -2,0) 주위를 회전하는 것처럼 보입니다. 모든 번역. – Steve
- 1. OpenGL 또는 OpenGL ES
- 2. OpenGL ES 1.1에서 OpenGL ES 2.0으로 전환
- 3. OpenGL-ES 로의 OpenGL - glBegin();
- 4. OpenGL ES 및 texcoord
- 5. OpenGL ES 2.0 텍스처링
- 6. 기본 2D 텍스처 Howto for iPhone OpenGL ES
- 7. OpenGL ES 비동기 텍스처로드
- 8. OpenGL ES iPhone Textures
- 9. OpenGL ES 인스트루먼트의 정확성
- 10. 데스크탑 PC의 OpenGL | ES
- 11. 조명 및 OpenGL ES
- 12. OpenGL ES 확대/축소
- 13. OpenGL ES 기능
- 14. OpenGL ES 기능
- 15. OpenGL-ES and Cg
- 16. 캔버스 또는 OpenGL ES?
- 17. OpenGL ES 캔버스 크기
- 18. OpenGL ES 텍스처 메모리
- 19. OpenGL ES 깊이 버퍼
- 20. 아이폰 시뮬레이터의 OpenGL ES
- 21. OpenGL ES 클리핑 객체
- 22. iPhone OpenGL-ES : UISwipeGestureRecognizer
- 23. OpenGL ES 텍스처 렌더링
- 24. OpenGL ES GL_TEXTURE_RECTANGLE
- 25. glScissor help (iPhone OpenGL ES)
- 26. OpenGL ES 2.0과 OpenGL 4의 차이점
- 27. OpenGL vs OpenGL ES (GLchar 이상)
- 28. OpenGL ES arcball 변환 문제
- 29. OpenGL ES : 변환을 비활성화 하시겠습니까?
- 30. OpenGL ES 2.0 멀티 스레드
왜 단위 쿼터니언을 사용하지 않습니까? –
단위 쿼터니온은 3 차원 구면에서 회전을합니다. 그리고 나는 이것이 내가 원하는 것 같지 않다는 것을 짐작했다. 회전하고자하는 점은 임의의 구체 위에있다. – Steve
임의의 쿼터니언은 임의의 점을 회전시키기에 충분한 자유도를 제공하지 않는다. 3 명 필요). 오프셋 적용도 피할 수 없습니다. –