旋转3D立方体,使侧面朝向用户

时间:2012-05-09 18:04:25

标签: 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

1 个答案:

答案 0 :(得分:1)

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

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