OpenGL 座標轉換

2021-06-25 11:14:06 字數 568 閱讀 6059

在opengl繪圖過程中,需要通過座標轉換將模型座標點的座標轉換為世界座標。

如圖,要把模型座標系o'x'y'z'中的點a座標轉換為世界座標oxyz的點座標,,需要得到本地座標到世界座標的轉換矩陣。如圖,模型座標系中原點在世界座標系的座標是(2,2,-2),點a在模型座標中的座標是(3,2,-1)。根據模型座標各座標軸的向量和得到齊次轉換矩陣t(列向量):

其中第一列是x軸在世界座標中的向量表示,第二列是y軸向量,第三列是z軸向量,第四列是原點在世界座標中的座標。將矩陣t與點a的座標相乘:

得到的結果(3,4,1)就是點a在世界座標中的座標了。

如果有多層座標,只需要每個座標系的轉換矩陣依次相乘,乘完剩下乙個轉換矩陣就可以了。

OpenGL座標轉換總結

前面整理過乙個,不過後來感覺不是很對,這裡重新寫一下。先解釋一下這個問題,在opengl程式設計中,經常會需要與使用者的互動,比如對檢視進行指定點旋轉,獲取模型座標點等。而這些操作最方便的就是通過滑鼠進行操作,但滑鼠只能獲得螢幕座標,那麼如何轉換到opengl世界座標就成了乙個亟待解決的問題。一 理...

螢幕座標向OpenGL座標轉換

很多人用opengl繪圖會遇到乙個問題即螢幕座標向opengl座標轉換,在網上流傳著如下類似的 glint viewport 4 gldouble modelview 16 gldouble projection 16 glfloat winx,winy,winz gldouble posx,pos...

螢幕座標向OpenGL座標轉換

很多人用opengl繪圖會遇到乙個問題即螢幕座標向opengl座標轉換,在網上流傳著如下類似的 glint viewport 4 gldouble modelview 16 gldouble projection 16 glfloat winx,winy,winz gldouble posx,pos...