日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

OpenGL中的reshape函数(整理)

發(fā)布時(shí)間:2025/6/17 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenGL中的reshape函数(整理) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

reshape函數(shù)怎么用
最佳答案
2010-11-30 回答
是不是問 OpenGL / GLUT 方面的問題?
GLUT里 glutReshapeFunc(reshape); 定義 當(dāng)窗的形狀改變事件發(fā)生時(shí) 調(diào)用的處理函數(shù) reshape。
shape 是形狀。reshape 是當(dāng)形狀改變時(shí),做些什么來(lái)修正窗內(nèi)的圖形顯示。
這由程序員自己決定,例如,你可以考慮圖形長(zhǎng)寬尺度按窗的長(zhǎng)寬變化,按比例縮放。你也可以考慮圖形長(zhǎng)寬尺度不變,…
下面是一個(gè)例子:
void reshape(int cur_w, int cur_h)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
if (cur_h <= 0) cur_h = 10; // 窗太小時(shí)處理
glViewport(0,0, cur_w, cur_h);
xfactor = (float) glutGet( GLUT_WINDOW_WIDTH ) / (float) img_width; // 按比例縮放
yfactor = (float) glutGet( GLUT_WINDOW_HEIGHT ) / (float) img_height; // 按比例縮放
glutPostRedisplay(); // 發(fā)送更新消息
}

最新回答 (1條回答)
2010-11-30 回答
你說(shuō)的應(yīng)該是改變窗口形狀,所繪制的物體不變形,而只是大小發(fā)生變化是吧?
void reshape (int w, int h)
{
glviewport (0, 0, (glsizei) w, (glsizei) h);
glmatrixmode (gl_projection);
glloadidentity ();
if (w <= h)
gluortho2d (0.0, 30.0, 0.0, 30.0 * (glfloat) h/(glfloat) w);
else
gluortho2d (0.0, 30.0 * (glfloat) w/(glfloat) h, 0.0, 30.0);
glmatrixmode(gl_modelview);
}
看這個(gè)reshape函數(shù)當(dāng)窗口發(fā)生變化,窗口的w(寬度)和h(高度)參數(shù)傳給reshape函數(shù),
glviewport (0, 0, (glsizei) w, (glsizei) h);
把視口設(shè)置為鋪滿整個(gè)窗口, if (w <= h)
gluortho2d (0.0, 30.0, 0.0, 30.0 * (glfloat) h/(glfloat) w);
else
gluortho2d (0.0, 30.0 * (glfloat) w/(glfloat) h, 0.0, 30.0);
把投影得到的視景體按照視口變化的比例變化視景體的比例;簡(jiǎn)單地說(shuō),本來(lái)視景體寬高比是1:1,視口寬高比也是1:1,這時(shí)繪制了一個(gè)物體。然后因?yàn)榇翱诎l(fā)生變化,視口也變化,假如變成了2:1;這時(shí)如果用1:1的視景體放到2:1的視口上肯定會(huì)變形,所以要把視景體變成2:1,這樣,雖然物體看起來(lái)變大(或變小)了,但長(zhǎng)寬比例不變,也就看起來(lái)不變形了。注意這個(gè)參數(shù)(glfloat) w/(glfloat) h。

總結(jié)

以上是生活随笔為你收集整理的OpenGL中的reshape函数(整理)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。