OpenGL的glViewport()函式和glOrtho()函式用法 - 程式人生
文章推薦指數: 80 %
glOrtho是建立一個正交平行的視景體。
一般用於物體不會因為離螢幕的遠近而產生大小的變換的情況。
比如,常用的工程中的製圖等。
需要比較精確的顯示。
程式人生>>OpenGL的glViewport()函式和glOrtho()函式用法
OpenGL的glViewport()函式和glOrtho()函式用法
阿新••發佈:2019-02-18
glViewport()函式
在OpenGL初始化完成之後,我們應該進行一些檢視設定。
首先是設定視見區域,即告訴OpenGL應把渲染之後的圖形繪製在窗體的哪個部位。
當視見區域是整個窗體時,OpenGL將把渲染結果繪製到整個視窗。
我們呼叫glViewPort函式來決定視見區域:
procedureglViewPort(x:GLInt;y:GLInt;Width:GLSizei;Height:GLSizei);
其中,引數X,Y指定了視見區域的左下角在視窗中的位置,一般情況下為(0,0),Width和Height指定了視見區域的寬度和高度。
注意OpenGL使用的視窗座標和WindowsGDI使用的視窗座標是不一樣的。
圖3.1-1表示了在WindowsGDI中的視窗座標,而圖3.1-2則是OpenGL所定義的視窗座標。
例如,要設定如圖3.1-3中的視見區域,我們應該呼叫函式:
glViewPort(100,100,Width,Height);
glOrtho是建立一個正交平行的視景體。
一般用於物體不會因為離螢幕的遠近而產生大小的變換的情況。
比如,常用的工程中的製圖等。
需要比較精確的顯示。
而作為它的對立情況,glFrustum則產生一個透視投影。
這是一種模擬真實生活中,人們視野觀測物體的真實情況。
例如:觀察兩條平行的火車到,在過了很遠之後,這兩條鐵軌是會相交於一處的。
還有,離眼睛近的物體看起來大一些,遠的物體看起來小一些。
glOrtho(left,right,bottom,top,near,far),left表示視景體左面的座標,right表示右面的座標,bottom表示下面的,top表示上面的。
這個函式簡單理解起來,就是一個物體擺在那裡,你怎麼去擷取他。
這裡,我們先拋開glViewport函式不看。
先單獨理解glOrtho的功能。
假設有一個球體,半徑為1,圓心在(0,0,0),那麼,我們設定glOrtho(-1.5,1.5,-1.5,1.5,-10,10);就表示用一個寬高都是3的框框把這個球體整個都裝了進來。
如果設定glOrtho(0.0,1.5,-1.5,1.5,-10,10);就表示用一個寬是1.5,高是3的框框把整個球體的右面裝進來;如果設定glOrtho(0.0,1.5,0.0,1.5,-10,10);就表示用一個寬和高都是1.5的框框把球體的右上角裝了進來。
上述三種情況可以見圖:
沉默王二(不止會寫程式的全棧工程師;還會寫有趣的文字,給不喜歡嚴肅的你。
)
«上一篇
Ubuntu16.04+ROS安裝hokuyo驅動下一篇»
相關推薦
gluPerspective函式和glOrtho函式的具體用法
我查了好多資料
按照書上的程式碼寫的確實可以顯示
自己去寫程式碼就經常看不到畫的圖形了還是搞不清楚glupetspective...
OpenGL的glViewport()函式和glOrtho()函式用法
glViewport()函式
在OpenGL初始化完成之後,我們應該進行一些檢視設定。
首先是設定視見區域,即告訴Open...
C++友元函式和友元類用法詳解
在C++中,我們使用類對資料進行了隱藏和封裝,類的資料成員一般都定義為私有成員,成員函式一般都定義為公有的,以此提供類與外界...
Python3join函式和os.path.join用法
Python3 join函式和os.path.join用法
os.path.join()連線兩個檔名地址的時候,就比os.path.join("D...
Python中join函數和os.path.join用法
post()參數說明pythonclasslogjoin絕對路徑返回Python中有join和os.pat...
通往t-sql的階梯:超越基本級別6:使用CASE表達式和IIF函數
簡化只有一個multi基本腳本需要mosnamedend摘要:此文章轉自:
http://www.sqls...
樓梯T-SQL:超越基礎6級:使用CASE表達式和IIF函數
sim等號sql語句arc要求sql代碼--express但是從他的樓梯到T-SQLDML,Grego...
Js利用正則表達式和replace函數獲取string中所有被匹配到的文本
利用str正則表達mat則表達式ole括號替換字符串js的replace函數除了替換文本以外還有獲取所有被...
js當中的建構函式和它的運用
首先是定義js當中的建構函式,記住,定義建構函式時建構函式都以大寫開頭。
將函式引數儲存為物件的屬性。
functionPoint(x,y)...
使用gethostname()函式和gethostbyname()函式獲取主機相關資訊
gethostname():返回本地主機的標準主機名
原型如下:
#include
延伸文章資訊
- 1glViewport()函数和glOrtho()函数的理解_shizhipeng的博客
glOrtho是创建一个正交平行的视景体。 一般用于物体不会因为离屏幕的远近而产生大小的变换的情况。比如,常用的工程中的制图等。需要 ...
- 2OpenGL的glViewport()函式和glOrtho()函式用法 - 程式人生
glOrtho是建立一個正交平行的視景體。 一般用於物體不會因為離螢幕的遠近而產生大小的變換的情況。比如,常用的工程中的製圖等。需要比較精確的顯示。
- 3glOrtho 函式(Gl.h) - Win32 apps | Microsoft Learn
glOrtho函式描述產生平行投影的透視矩陣。 (左、下、近) 和(右、上、近) 參數,分別指定對應至視窗左下角和右上角的近裁剪 ...
- 4glOrtho - 中文百科知識
glOrtho就是一個正射投影函式。它創建一個平行視景體。實際上這個函式的操作是創建一個正射投影矩陣,並且用這個矩陣乘以當前矩陣。
- 5如何使glOrtho 平行六面體旋轉? (How can I ... - CoderBridge
問題描述如何使glOrtho 平行六面體旋轉? (How can I make the glOrtho parallelepiped rotating?) I have my world ren...