在 3D 空间中沿 Y 轴的一个角度在随机点处旋转单位向量
Posted
技术标签:
【中文标题】在 3D 空间中沿 Y 轴的一个角度在随机点处旋转单位向量【英文标题】:Rotation of a unit vector at a random point iby an angle along Y axis in 3D space 【发布时间】:2018-08-27 06:54:22 【问题描述】:我还附上了示意图来描述我的问题。
我需要将向量 V 与基点 P 旋转一个角度并找到新的向量 V'。
旋转轴是关于点 P 处的局部 y 轴(平行于全局 Y 轴)
随后,我需要围绕平行于全局 Y 轴的 x 轴旋转初始向量 V。
旋转的主要原因是在P点找到新的向量V'。两次旋转都是独立的,每次旋转都提供一个新的V'。我在 VB.net 中对此进行编程,输出是新向量 V' 的 double()。
【问题讨论】:
到目前为止你尝试过什么?你能发布你的代码吗? 我还没有开始编码。我试图从网上读到我需要将点 P 转换为原点,与旋转矩阵相乘以沿 Y 轴旋转并从原点转移回点 P。我不知道从哪里开始,因为它没有提到向量 V。这就是我感到困惑的地方。 【参考方案1】:只需独立应用两个旋转(请参阅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
【讨论】:
嗨 Nico,我尝试按照您的步骤操作,这是我取得的结果以上是关于在 3D 空间中沿 Y 轴的一个角度在随机点处旋转单位向量的主要内容,如果未能解决你的问题,请参考以下文章
获取 3D numpy 数组中沿轴的连续非 nans 值总和的最大值