【问题标题】:Rotation around Z from a non-skew, affine orthogonal projection matrix从非倾斜仿射正交投影矩阵绕 Z 旋转
【发布时间】:2011-05-04 15:51:17
【问题描述】:
对于我认为应该是相当简单的问题,我似乎找不到答案。
我正在尝试获取矩阵的 z 旋转,它表示始终朝向 Z 的正交投影的缩放、变换和旋转。只是围绕 Z 的旋转。
我意识到可能没有涵盖 100% 使用(非仿射、偏斜等)的解决方案,但我只需要一个解决这种情况。
目的是让其他东西在一个简单的 CAD 查看器中工作(现在只需要把这部分混为一谈)。
【问题讨论】:
标签:
matrix
directx
rotation
direct3d
projection
【解决方案1】:
那么矩阵的第一行和第二行是侧向量和上向量(分别)
因此,假设向上的向量将指向正上方(对于没有 z 轴旋转),而侧向量将指向右侧,您可以计算出预期(即非滚动)向量与您的向量之间的角度是多少有。这只是调用的结果
float angle = acosf( DotProduct( identityUp, actualUp ) );