裁剪區域和視口區域(2)

2021-07-22 16:43:58 字數 1609 閱讀 8710

**解釋:

1)void glutreshapefunc(void(*func)(int width, int height));

glut定義了當視窗大小改變時glutreshapefunc()函式應該被呼叫。此外,這個函式還會在視窗初次被建立時呼叫,保證初始化視窗不是正方形的時候渲染也不會變形出錯。

2)自定義函式changesize(glsizei w, glsizei h)

api中規定此函式做的工作有:

1、計算寬高比(wigth/height)。為了計算正確,必須保證高度不為0。

2、用函式glviewport把視口設定為整個視窗:glviewport(0,0,w,h);

3、設定當前矩陣為投影矩陣,這個矩陣定義了乙個可視空間(viewing volume),再呼叫乙個單位矩陣來初始化投影矩陣。

4、根據視窗的縱橫比定義裁剪區域,並使用正投影。

5、選擇模型檢視矩陣,並重置座標系統。

3)setuprc()設定渲染狀態

在渲染新的圖形時,需要做一些準備工作。在本例中做的工作就是重設背景色,防止上一張的影象對即將繪製的產生影響。

4)void glviewport(glint x, glint y, glsizei width, glsizei height);

呼叫此函式來決定視口區域,x,y為左下角點位置,width和height為視口的寬度和高度(以螢幕畫素為單位)。

5)定義裁剪區域

對裁剪區域進行重新定義,使縱橫比保持不變,視窗仍然維持在原來的形狀。也就是新視窗的縱橫比,重新定義裁剪區域的縱橫比,使裁剪區域和視口的縱橫比保持一致,這就是保持影象形狀不變的關鍵所在。

6)正投影函式

void glortho(gldouble left, gldouble right, gldouble bottom, gldouble top, gldouble near, gldouble far);

左平面、右平面、下平面、上平面、近平面、遠平面。

7)縱橫比

縱橫比指的是垂直方向上乙個單位長度內的畫素數量與水平方向上乙個單位長度內的畫素數量之比。

8)gl_projection和gl_modeview和gl_texture

gl_projection:投影的意思,就是要對投影相關進行操作,也就是把物體投影到乙個平面。這樣,接下來的語句可以是跟透視相關的函式,比如glfrustrum()或gluperspective()。

gl_modelview:這個是對模型視景的操作,接下來的語句描繪乙個以模型為基礎的適應,這樣來設定引數,接下來用到的就像是glulookat()這樣的函式。

gl_texture:就是對紋理相關進行操作。

分成四個裁剪區域:

#include "stdafx.h"

#include

//不顯示控制台視窗,這個有待學習

#pragma comment( linker, "/subsystem:\"windows\" /entry:\"maincrtstartup\"")

void paint()

void init()

int main(int argc, char ** argv)

OpenGL概念辨析 視窗,視口,裁剪區域

1.視窗 這就不用解釋了吧 2.視口 就是視窗中用來顯示圖形的一塊矩形區域,它可以和視窗等大,也可以比視窗大或者小。只有繪製在視口區域中的圖形才能被顯示,如果圖形有一部分超出了視口區域,那麼那一部分是看不到的。通過glviewport 函式設定。如下圖所示 圖1.不同大小的視口 3.裁剪區域 平行投...

python opencv實現目標區域裁剪功能

這個任務是自己在專案中資料處理的一部分內容,待處理的如下所示 我需要將目標區域給裁剪出來,要不然在後期訓練網路的時候整幅影象過大,且目標區域過小,得到結果不好,還會加劇計算量。在網上找了各個大佬的部落格看,沒找到合適的,便自己動手寫了,順便自己的小破站剛搭建起來,記錄一下自己的思路。思路去尋找目標區...

視窗區域和客戶區域

getclientrect 此函式用於取得視窗的客戶區座標。客戶區即視窗客戶區的左上角和右下角之間 的區域。客戶區座標的原點位於視窗客戶區的左上角,即用此函式得到的座標的 原點是視窗客戶區的左上角,左上角的的座標值為 0,0 返回值 成功時返回非0,失敗時返回0 注意 在與結構rect之間的轉換中為...