旋转矢量一个角度并旋转给定的轴方向矢量,然后旋转一个点。 (3个维度)

时间:2019-06-19 12:25:57

标签: c# math vector linear-algebra

  1. 向量的3D坐标。

  2. 以弧度为单位的旋转角度。

  3. 轴点的3D坐标。

  4. 轴方向矢量的3D坐标。

方向矢量的长度大于1e-8。

我应该如何旋转输入向量?

首先,我需要将坐标系移到另一个起点吗? 我不明白如何将向量绕一个方向旋转。 然后..我应该首先绕x轴旋转,然后绕y,然后绕z旋转。

1 个答案:

答案 0 :(得分:0)

有一种有效的方法-使用Rodrigues formula

要将矢量 V 绕轴与单位方向矢量 k 旋转角度theta

Vrot = V * cos(theta) + (k x v) * sin(theta) + k * (k.dot.v) * (1 - cos(theta))