由於在立體的空間中移動,所以海龜的轉動並不像在2D平面上,則有360度的差別,在3D海龜繪圖法中,海龜的轉動有可能是720度任一方向的轉動, 為了 方便掌握海龜的轉動,讓海龜擁有自己的座標系統,所以在3D的海龜縮圖法中同時存在兩種座標系統,即 直 角座標系統 與 太空船座標旋轉, 如下所示:
海龜所使用的座標,是以頭朝向的方向為x'正方向,背面為y'正方向,而右肢為z'正方向,當海龜要旋轉時,是以自己的觀點繞x'、y'或z'軸來旋 轉,而不是對系統座標的X、Y、Z軸旋轉:
- 對x'軸旋轉
對x'軸旋轉時,x'軸的向量不變的,而改變y'與z'軸的向量,如下圖所示:
- 對y'軸旋轉
對y'軸旋轉時,y'軸的向量不變的,而改變x'與z'軸的向量,如下圖所示:
- 對z'軸旋轉
對z'軸旋轉時,z'軸的向量不變的,而改變x'與y'軸的向量,如下圖所示:
在旋轉海龜時,x'、y'、z'向量的改變計算,您可以參考之前提過的太空船座標系統的轉換,綜合以上的描述,可以訂出3D海龜繪圖法的幾個基本方 法:
- 設定海龜的位置(X, Y, Z)
- 設定海龜的座標系統(x', y', z')
- 讓海龜對x'軸旋轉
- 讓海龜對y'軸旋轉
- 讓海龜對z'軸旋轉
以上五個方法是3D海龜繪圖法所必備的,至於其它的方法如移動繪直線、繪點等方法,其繪圖方向即是海龜面向x'軸的方向,但必須配合所使用的2D轉 3D投影方法來製作,使用平行投影或透視投影的不同,就要使用不同的繪直線、繪點等方法。
關於3D海龜繪圖法的參考原始碼,建議看看 JAVA 2D/3D繪圖程式設計實例應用 書附光碟中的3D海龜繪圖原始碼,如果你想看看 OpenSCAD 的實作,可以看看〈實 作 3D 海龜繪圖〉。