행렬과 오일러 각은 짐벌 잠금으로 인해 어려움을 겪을 수 있지만 다른 하나를 사용하는 데있어 다른 주장은 무엇입니까?회전 표현에 Matrices, Euler Angles 및 Quaternions를 사용하는 경우 장단점은 무엇입니까?
DirectX에서 어떤 점이 좋다고 생각하십니까?
매일 C++/C/DirectX 프로그래밍에서 무엇을 사용합니까?
행렬과 오일러 각은 짐벌 잠금으로 인해 어려움을 겪을 수 있지만 다른 하나를 사용하는 데있어 다른 주장은 무엇입니까?회전 표현에 Matrices, Euler Angles 및 Quaternions를 사용하는 경우 장단점은 무엇입니까?
DirectX에서 어떤 점이 좋다고 생각하십니까?
매일 C++/C/DirectX 프로그래밍에서 무엇을 사용합니까?
오일러 각은 행렬을 저장하는 것과는 달리 (또는 3 개이지만 과도하게 들릴 수 있음) 3 개의 매개 변수 만 필요합니다. 그러나 오일러 회전을 적용하면 변환을 생성하기 위해 세 행렬 곱셈에 해당하는 것으로 끝날 것입니다. 행렬 만 사용하는 경우에는 행렬 구성 방법에 따라 비용이 많이 들지 않을 수 있습니다. Gimbal Lock 외에도 조심해야 할 행렬 표현을 보간 할 때 취소 효과에 문제가 있습니다.
쿼터니언을 고려할 수도 있습니다. 저장 장치의 네 가지 매개 변수가 필요하므로 매우 무겁지 않습니다. 그들은 짐벌 자물쇠를 피하고 원활한 회전을 렌더링하기 위해 보간 될 수 있습니다. 쿼터니언의 단점으로 해석 될 수있는 한 가지 점은 일부가 매우 직관적이지 않을 수도 있다는 것입니다. 행렬 변환과 오일러 각은 꽤 직관적 인 일종의 롤 - 요 - 피치 (roll-yaw-pitch) 또는 스핀 세차 운동 (spin-precession-nutation) 유형을 가지고 있습니다. 쿼터니언은이 결과에 영향을주는 최종 결과 축에 대한 단일 회전과 유사합니다.
누군가가 다른 방법보다 한 가지 방법을 선호하는 경우가있을 수 있으므로 이러한 사항은 결정할 때 고려해야 할 사항입니다.
+1. 보간법과 짐벌 잠금 문제를 해결하면 왜 쿼터니언을 선호할까요? 그러나 대부분의 사람들이 매트릭스를 사용하는 것처럼 보이기 때문에 자체 장점이 있습니다. –
매트릭스가 짐벌 잠금 장치에 들어갈 수 없다는 점에 유의해야한다고 생각합니다. 방향 잠금은 회전이 아니라 방향을 저장합니다. – Cygon
DirectX와 관련이 없습니다. 두 방법 중 하나를 사용할 수는 있지만 쿼터니언은 애니메이션 데이터를 다루기가 더 쉽습니다. 그렇지 않으면이를 다루는 단일 표준 방법이 없으므로 프로그램간에 데이터를 해석하기가 더 어려워집니다.
쿼터니언은 마스터하기가 가장 힘들지만 일단 자신이 무엇에 관한 것인지 이해하면 사용하기가 놀랍도록 쉽게 찾을 수 있습니다. 오일러 각도/행렬 변환은 다른 두 가지 솔루션이하지 못하는 문제를 다루기 때문에 더 나은 솔루션이라고 생각합니다. "킴볼 자물쇠".
Quaternions의 상환 재산으로 "Gimbal Lock"을 언급하는 다른 게시물. 이것은 오일러 각 (Euler Angles)의 문제 일 뿐이며 매트릭스 또는 쿼터니언은 영향을받지 않습니다. – Cygon
오일러 각은 특이점이 있으며 작업하기가 어렵습니다. 매트릭스 표현은 여기에있는 여러 가지 답변과는 반대되는 문제를 가지고 있지 않습니다. 오리엔테이션의 매트릭스 표현은 누적 된 오류로 인해 어려움을 겪을 수 있습니다. 이는 자유도가 3 개인 무언가에 9 개의 숫자를 사용하기 때문입니다. 쿼터니언은 수학적으로 매우 흥미 롭습니다.하지만 결국에는 4x4 행렬 곱셈을합니다.
쿼터니온은 또한 회전 축을 나타내는 3vec로 볼 수 있으며 길이는 해당 축을 중심으로 한 회전 각도와 관련됩니다 (sin 제곱?). 4 번째 매개 변수는 4vec의 길이가 1이되도록 계산됩니다.이 해석은 동등한 방향 행렬로 변환 할 수 있습니다.
매트릭스 표현에는 스케일링 정보가 포함될 수 있으며 위치 정보와 방향을 포함하도록 4x4까지 확장 할 수 있습니다. 다른 두 개를 사용하여 불가능한 행렬 변환을 사용하여 위치 벡터와 방향 벡터를 모두 변환 할 수 있습니다.
4x4 매트릭스로 매우 간단하게 처리 할 수 있습니다. 쿼터니언 및 오일러 각은 방향을 지정합니다. 그래, 그 한가지. 나는이 문제점에 대한 내 선호도/편견이 다소 분명하다고 생각한다 :-)
일반적으로 나는 아핀 변환도 선호합니다. 하지만 무언가를 애니메이션으로 만들면 보간을 위해 쿼터니언 경로로 이동합니다. 씬 그래프 합성의 경우, 아핀 변환은 더 나은 선택처럼 들립니다. 누군가 모델러 또는 무언가를위한 회전 도구를 작성했다면, 오일러 각은 더 자연스럽게 느껴질 수 있습니다. –
프로그래밍 관련 없음 –
Jestro : 여기서 읽음 : http://en.wikipedia.org/wiki/Gimbal_lock 평결은 쿼터니언을 사용하는 것으로 보인다. .그러나 나는 직접 (말장난 의도) 경험이 없다. –
@Mitch : 이것은 분명히 프로그래밍과 관련이 있습니다. 매일 3D 그래픽으로 작업하는 사람은 누구나 이런 것들을 처리합니다. –