【问题标题】:Rotate 3D cube so side is facing user旋转 3D 立方体,使一侧面向用户
【发布时间】:2012-05-09 18:04:25
【问题描述】:

如何计算立方体最明显一侧的新角度和旋转矢量?

为什么:用户可以旋转立方体,但完成后我希望立方体贴靠到面向用户的一侧。

什么:我目前在 iOS 中使用 CoreAnimation 来使用 CATransform3D 进行旋转。我有当前的角度和旋转向量,所以我可以这样做:

CATransform3DMakeRotation(angle, rotationVector[0], rotationVector[1], rotationVector[2]);

附加信息:我目前正在使用Bill Dudney's Trackball 代码来生成运动并计算角度和旋转矢量。

【问题讨论】:

  • 如果你在这里没有得到答案,你可以考虑Game Development Stack Exchange——他们擅长 iOS 和图形数学。
  • 好主意。如果我在这里没有得到任何线索,我会在那里发帖。
  • 不,还没有碰过相机(甚至不确定它是否适用于 CoreAnimation)。

标签: ios math 3d core-animation rotation


【解决方案1】:

您的相机的 lookAt 向量 - 可能是 {0, 0, 1} - 确定哪一侧更靠近用户。

您需要为立方体的每一面创建法线。然后以与立方体相同的方式旋转它们。之后,使用点积计算每个法线向量与相机lookAt 向量之间的角度。具有最大点积的法线是最靠近相机的一侧。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    相关资源
    最近更新 更多