glrotatef如何繞自身軸旋轉

2021-06-20 17:25:36 字數 469 閱讀 7205

首先我們知道所有的opengl操作都以點(0,0,0)作為基點。

glrotatef(旋轉角度(0~360),x,y,z),z,y,z是旋轉軸。由於旋轉操作全都圍繞點(0,0,0),所以如果你的物體並非在(0,0,0)點繪製,那麼其旋轉的時候就會有偏移。

比如,我們假設有乙個正方體,近角點的座標是(0,0,0)遠角點的座標是(1,1,1)。為了使這個正方體繞其中心旋轉,我們必須把它的中心點移動到點(0,0,0)

glrotatef(angle, 1, 0, 0); // 繞x軸旋轉

gltranslatef(-0.5, -0.5, -0.5); // 正方體的中心從(0.5,0.5,0.5)移動到(0,0,0)

draw_cube(); //正方體繪製**

謹記opengl逆序執行**,所以gltranslatef雖然是最後呼叫的但會首先執行。

所以,當正方體的中心移動到(0,0,0)後我們就可以圍繞其中心旋轉了。

繞任意軸旋轉

關於最常見的繞座標軸旋轉,可以看看前一篇 幾何變換詳解。繞任意軸旋轉的情況比較複雜,主要分為兩種情況,一種是平行於座標軸的,一種是不平行於座標軸的,對於平行於座標軸的,我們首先將旋轉軸平移至與座標軸重合,然後進行旋轉,最後再平移回去。整個過程就是 對於不平行於座標軸的,可按如下方法處理。該方法實際上...

繞任意軸旋轉

繞任意軸旋轉 關於最常見的繞座標軸旋轉,可以看看前一篇 幾何變換詳解。繞任意軸旋轉的情況比較複雜,主要分為兩種情況,一種是平行於座標軸的,一種是不平行於座標軸的,對於平行於座標軸的,我們首先將旋轉軸平移至與座標軸重合,然後進行旋轉,最後再平移回去。整個過程就是 對於不平行於座標軸的,可按如下方法處理...

繞任意軸旋轉

關於最常見的繞座標軸旋轉,可以看看前一篇 幾何變換詳解。繞任意軸旋轉的情況比較複雜,主要分為兩種情況,一種是平行於座標軸的,一種是不平行於座標軸的,對於平行於座標軸的,我們首先將旋轉軸平移至與座標軸重合,然後進行旋轉,最後再平移回去。整個過程就是 對於不平行於座標軸的,可按如下方法處理。該方法實際上...