我有一系列坐标,所有坐标都与具有特定法线向量的同一平面共面。我还定义了两个垂直于法线向量的向量,它们描述了该 3D 平面内的“上/下”和“左/右”。应该围绕其进行转换的平面的中心也是已知的。
假设我有一个新的法线向量,我将如何将所有这些 3D 坐标转换为仍在该平面中?那么它们与新法线的平面中心的相对位置是否仍然相同?
我以前读过关于旋转矩阵的内容,但问题是我有一个要转换的向量,而不是描述旋转的角度,尽管平面本质上确实会旋转。我想知道是否没有任何方法可以使这种转换变得快速而简单。
因此,我对旋转矩阵进行了更多研究,发现您不一定需要知道旋转到新位置的角度。
实际上,您需要做的就是将旋转矩阵乘以相对于前一个旋转矩阵的坐标。之后,您添加您正在旋转的点的坐标,然后您就拥有了它。
我需要在 python 中执行此操作,并为此使用了 numpy 的 matmul 方法。旋转矩阵是使用我已经可用的向量制作的:
[[right.x up.x, forward.x],
[right.y, up.y, forward.y],
[right.z, up.z, forward.z]]
对,向上和向前是 3 个相互垂直的大小为 1 的向量。