2012-05-09 41 views
1

如何找出立方體最明顯一面的新角度和旋轉向量?旋轉三維立方體,讓一面朝向用戶

爲什麼:用戶可以旋轉立方體,但是當完成後我想讓立方體與面向用戶的一側對齊。

什麼:我目前在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

+0

如果你在這裏沒有得到答案,你可以考慮[遊戲開發](http://gamedev.stackexchange.com)堆棧交換 - 他們擅長iOS和圖形數學。 – sblom

+0

好主意。如果我在這裏沒有得到任何線索,我會在那裏發帖。 –

+0

相機是否也旋轉? –

回答

1

相機的lookAt載體 - 可能{0,0,1} - 決定哪一方更接近用戶。

您需要爲立方體的每一側創建法線。然後按照與立方體相同的方式旋轉它們。之後,使用點積計算每個法向量與相機向量之間的夾角。無論正常情況下最大的點積是最接近相機的一面。