openGL座標變換

2021-04-09 02:24:39 字數 1208 閱讀 6334

座標變換:opengl的每一種變換都是乙個矩陣的運算。假設當前某頂點座標為c,現在要做某種變換(設矩陣為m)得到新的座標c1,那麼運算過程就是c1=t×c。opengl應用

左乘規則

,座標的變換就是用變換矩陣乘以座標向量

opengl變換在程式設計的時候順序是反過來的。想對目標 glutwiresphere(0.2, 10, 8);//draw earth 做r2,t,r1的變換,在寫的時候就要:

glrotatef(year, 0.0, 1.0,0.0);//旋轉矩陣r1

gltranslatef(2.0, 0.0, 0.0);//平移矩陣t

glrotatef(day, 0.0, 1.0, 0.0);//旋轉矩陣r2

glutwiresphere(0.2, 10, 8);//draw earth

三維觀察原理類似於拍一張**的過程。(類似於red book )

第一步是將照相機調整位置置於三角架上;

第二步是 將物體調整位置放在相機的視野當中。實際上,相機和三維物體是相對位置,相機移動位置也可以理解為物體反向移動位置,因此這兩步可以理解為一步,即調整三 維物體和視點的位置,將世界座標系下的物體變換到觀察座標系下。在計算機圖形學中,定義模型矩陣(modeling matrix)實現了三維圖形的幾何變換,即平移、旋轉和縮放。

第三步相機進行調焦以便看清楚物體,並按下快門將三維物體投影在二維膠片上;在計算機圖形學中,定義相應的投影矩陣(projectionmatrix),進行投影變換,把三維物體從觀察座標系轉換到投影座標系中。

第四步是膠片的沖洗和裁剪。相應計算機圖形學中,定義視口矩陣(viewingmatrix),進行視口變換和裁剪,決定二維圖象的大小。將物體從二維投影座標系下轉換到裝置座標系下。

這樣,乙個三維空間裡的物體被投影到二維平面上了,也就能在二維的計算機螢幕上正確顯示了。

螢幕座標點 = 3d 模型點 * 幾何變換棧矩陣(n...1) * 投影變換棧矩陣(n...1)

opengl 維護兩個棧: 投影變換棧, 幾何變換棧。

投影:glortho,gluperspective--------------------glmatrixmode(gl_projection);

幾何變換:gltranslatef,glrotatef,glscalef--------glmatrixmode(gl_modelview);

OpenGL座標變換

1.x座標軸從左至右,y座標軸從下至上,z座標軸從裡至外。2.opengl螢幕中心的座標值是x和y軸上的0.0f點。3.中心左面的座標值是負值,右面是正值。移向螢幕頂端是正值,移向螢幕底端是負值。移入螢幕深處是負值,移出螢幕則是正值。glloadidentity,函式名。該函式的功能是重置當前指定的...

OPENGL場景座標變換

我們生活在乙個三維的世界 如果要觀察乙個物體,我們可以 1 從不同的位置去觀察它。檢視變換 2 移動或者旋轉它,當然了,如果它只是計算機裡面的物體,我們還可以放大或縮小它。模型變換 3 如果把物體畫下來,我們可以選擇 是否需要一種 近大遠小 的透視效果。另外,我們可能只希望看到物體的一部分,而不是全...

OpenGL 中的座標變換

1 opengl中的變換 變換 transform 可以使3d空間中的物體投影到2d平面上。使用變換,你可以移動 旋轉 縮放甚至彎曲乙個物體。然而變換並沒有直接修改頂點 資料,取而代之,變換修改 1 opengl中的變換 變換 transform 可以使3d空間中的物體投影到2d平面上。使用變換,你...