ios - 旋转 3D 立方体,使一面朝向用户

标签 ios math 3d core-animation rotation

如何为立方体最可见的一面计算出新的角度和旋转矢量?

原因:用户可以旋转立方体,但完成后我希望立方体吸附到面向用户的一侧。

内容:我目前在 iOS 中使用 CoreAnimation 通过 CATransform3D 进行旋转。我有当前角度和旋转矢量,所以我可以这样做:

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

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

I need the cube to rotate so the purple side is facing user

最佳答案

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

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

关于ios - 旋转 3D 立方体,使一面朝向用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10521626/

相关文章:

iOS 模拟器不显示文件应用程序作为 NSFileproviderExtension 的选项

algorithm - 确定某物的 x 和 y 以使其遵循 2 个关键帧之间的曲线的算法是什么?

c++ - 在OpenGL中用鼠标拾取在3D空间中拖动3D点的最佳方法?

algorithm - 在 3 维移动目标上发射射弹(直线轨迹)

algorithm - 线性局部嵌入残差方差 Matlab

algorithm - 寻找平截头体的最小包围球

objective-c - 重新启动应用程序的按钮

ios - 为什么空的 UIDragItem 数组仍然允许拖动行?

ios - 在 iPhone 上为 RTL 语言翻转布局

python - 如何计算具有三角形面的网格的质心?