我遇到了一段有趣的遗留代码,我无法理解。
我们使用欧拉矩阵执行两次旋转,然后乘以原始矢量以确定点(x,y)的新位置。没问题。
但是,下一行代码将旋转矩阵第2行的点积与向量相乘,以确定该点所在平面的哪一侧。为清楚起见,旋转矩阵是围绕x轴旋转然后围绕y轴旋转的乘积,“组合”矩阵。
我知道如何使用平面和矢量的点积来做到这一点,但我找不到为什么使用欧拉矩阵的第二行有效的参考 - 它确实有用!
谢谢
考虑基本轮换:
[p0] [R00 R01 R02] [q0]
[p1] = [R10 R11 R12] [q1]
[p2] [R20 R21 R22] [q2]
p(p1)的“y”分量只是R的第2行与q之间的点积。如果是正的,它位于x-z平面的一侧,如果是负的,则位于另一侧。如果它为零,它就坐在飞机顶部。 (回想一下,x-z平面包含y为0的所有点。)