【问题标题】:Rotation of a unit vector at a random point iby an angle along Y axis in 3D space在 3D 空间中沿 Y 轴的一个角度在随机点处旋转单位向量
【发布时间】:2018-08-27 06:54:22
【问题描述】:

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

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

  2. 旋转轴是关于点 P 处的局部 y 轴(平行于全局 Y 轴)

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

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

【问题讨论】:

  • 到目前为止你尝试过什么?你能发布你的代码吗?
  • 我还没有开始编码。我试图从网上读到我需要将点 P 转换为原点,与旋转矩阵相乘以沿 Y 轴旋转并从原点转移回点 P。我不知道从哪里开始,因为它没有提到向量 V。这就是我感到困惑的地方。

标签: vb.net vector rotation rotational-matrices


【解决方案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,我尝试按照您的步骤操作,这是我取得的结果
猜你喜欢
  • 2011-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-23
相关资源
最近更新 更多