2012-11-17 71 views
2

我是C++和openGL的新手,所以請記住,我的編程技能不是頂尖的,但我是一個快速學習者。所以,因爲我最喜歡的拼圖是魔方,所以我決定發揮我的創造力,所以現在我正在製作一個3D魔方,並且我將分別使用每個魔方片(26片不包括核心片) (我計劃在未來學會如何使用它們之後使用紋理)魔方(旋轉和跟蹤)

現在我可以使用glRotatef旋轉相機並看到整個立方體。

我偶然發現的主要問題是旋轉每個臉部,並跟蹤立方體以確定它們現在屬於哪個臉部,這也將決定臉部旋轉時它們是否會受到影響。

此時,我已經意識到,使用glRotatef將帶來不良,所以我周圍中搜索前進,並發現了四元所以我讀了一堆關於他們的教程,但我不知道如何實現它們並使用它們。

這是最後的教程中,我一直在讀:

http://www.cprogramming.com/tutorial/3d/quaternions.html

我的要求將是對如何實現它在我的顯示功能使用這是一個非常簡單的例子。至於跟蹤小方塊,我目前正在考慮使用6塊布爾值來確定它們通過中心塊的位置。

如果您有任何其他更好的想法或管理臉部輪廓的概念,請告訴。

問候,,

+0

這裏有一些細節http://content.gpwiki.org/index.php/OpenGL:Tutorials:Using_Quaternions_to_represent_rotation – Caribou

+0

不清楚。您是否有將立方體的狀態從一個操作更改爲另一個操作的問題(例如「旋轉左側90度CW」)還是存在平滑動畫每個操作的問題?這些是完全不同的問題,你必須獨立解決它們。 – ybungalobill

+0

矩陣比四元數更容易使用。如果你真的不需要他們留在矩陣中。以上不需要四元數。 – 2012-11-17 21:56:12

回答

0

我已經偶然發現的主要問題是旋轉每個面由自身也保持cubies的軌跡,以確定其面對他們現在屬於這也將決定他們是否會如果臉部旋轉受影響。

這就是你的整個算法,基本上就在那裏。你可以做的是擁有一個可以容納6個「面孔」的數據結構。這些面是立方體的兩側。每張臉都有一個指向NorthFace,SouthFace,EastFace和WestFace的指針。每面還包含3行3列立方體。您現在應該進行必要的操作以將臉部向下移動等等。