vtkMath 旋转向量

文章目录

VTK 中有两个用以旋转向量的方法:

1
2
3
4
// 根据转轴与角度旋转
static void vtkMath::RotateVectorByWXYZ(const float v[3], const float q[4], float r[3]);
// 根据四元数旋转
static void vtkMath::RotateVectorByNormalizedQuaternion(const float v[3], const float q[4], float r[3]);

其中 v 是原向量,q 为参数向量,r 为旋转后向量。

其中根据转轴与角度旋转时,首先需要知道转轴向量 norm,并归一化。向量方向依据右手定则。然后指定转动角度 angle,构造转动参数 q:

1
float q[4] = {angle, norm[0], norm[1], norm[2]};

然后调用方法即可:

1
vtkMath::RotateVectorByWXYZ(v, q, r);