2012-02-14 2 views
0

저는 C++ ifc 가져 오기 프로그램을 만들고 있습니다.오일러 각 및 돌출 방향

방향 벡터가 있고 그 부분을 밀어 내고 싶습니다. 섹션 자체는 2d 포인트 목록입니다. 압출 방향을 계산하려면 변형되지 않은 방향에 변형 행렬을 곱해야합니다.

매트릭스는 x, yz (오일러 각과 유사)의 변환을 갖는다.

돌출 방향 주위의 회전 각도를 계산해야합니다.

matrix.ExtractEulerXYZ(x,y,z)

문제는, 어떻게 x, y 또는 z에서 회전을 가지고 방향 벡터를 가질 수 있다는 것입니다 :

나는 오일러가 매트릭스에서 각도를 반환하는 매트릭스 클래스가 돌출 방향에서 올바른 각도 x, y 또는 z을 선택할 수 있습니까?

+0

2d 벡터의 3d 수학을 수행하고 있습니까? 이것은 권고되지 않습니다. 적어도 또는 으로 생성 된 모든 점을 가지고 있지만 그 이상의 각도를 식별하려고하거나 단순히 점에 대한 변환을 수행하려고합니까? 또한 왜 벡터를 추가하지 않는 것이 좋습니까? 당신은 다른 태그들에 대해서 생각할 수도 있습니다. 이것은 언어와 관련이없는 것처럼 보이기 때문에 일반적인 [수학] – gardian06

답변

0

2 차원 점은 2 차원 공간에서 (x, y) 위치에 있고 3 차원 공간에서 (x, y, 0) 위치에 있습니다.

3 차원 공간에서의 오일러 각은 xyz 축에서 3 회전을 정의하여 xyz 축을 지정된 점으로 회전시킵니다. 즉, x 축에서 점에 대한 올바른 거리 인 x 축상의 점을 표시하면 축을 XY 평면을 따라, b 축을 ZY 평면을 따라 그리고 c를 ZX 평면을 따라 회전시킵니다.

의 "실제 동작과의 관계"섹션의 애니메이션을 참조하십시오. 특히, 처음에는 왼쪽 하단 모서리쪽으로 돌출하는 x 축의 진행을 따릅니다.

2 차원 점이있는 경우 ZY 및 ZX 회전은 아무 것도하지 않습니다. 단지 XY 축을 중심으로 회전하는 것입니다. 따라서 간단한 삼각법 (SOH CAH TOA)을 사용하여 원점에서 점까지의 각도를 찾을 수 있습니다. 행렬을 사용할 필요가 없습니다.