单位矢量在3D空间中沿Y轴的任意点i沿角度旋转

时间:2018-08-27 06:54:22

标签: vb.net vector rotation rotational-matrices

我还附上了示意图来描述我的问题。

  1. 我需要将矢量V与基点P旋转一个角度,然后找到新的矢量V'。

  2. 说旋转轴围绕点P上的局部y轴(与全局Y轴平行)

  3. 随后,我需要绕着与全局Y轴平行的x轴旋转初始向量V。

旋转的主要原因是在点P处找到新的矢量V'。这两个旋转都是独立的,并且每个旋转都提供一个新的V'。我正在VB.net中对此进行编程,输出是新向量V'的double()。

e

1 个答案:

答案 0 :(得分:0)

只需单独应用两个旋转(请参阅Wikipedia)。基点对此没有任何作用,因为它只是一个永不变的偏移量。如果我对您的描述正确无误,那么您需要执行以下操作:

//rotation about y-axis
iAfterRot1 = cos(phi1) * i + sin(phi1) * k
jAfterRot1 = j 
kAfterRot1 = -sin(phi1) * i + cos(phi) * k

//rotation about x-axis
iAfterRot2 = iAfterRot1
jAfterRot2 = cos(phi2) * jAfterRot1 - sin(phi2) * kAfterRot1
kAfterRot2 = sin(phi2) * jAfterRot1 + cos(phi2) * kAfterRot1