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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt中使用OpenGL进行绘图

發(fā)布時間:2023/12/18 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt中使用OpenGL进行绘图 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Qt Creator中的3D繪圖及動畫教程(參照NeHe)
剛剛學習了Qt Creator,發(fā)現(xiàn)Qt提供了QtOpenGL模塊,對OpenGL做了不錯的封裝,這使得我們可以很輕松地在Qt程序中使用OpenGL進行繪圖渲染。雖然里面還是由不少專業(yè)的解釋照搬原文的,但還是加入了大量自己的分析。而且Qt中寫OpenGL框架上比VC簡單太多了,有不少東西都封裝優(yōu)化好了,代碼上還是由有很多區(qū)別的。當然,其中原教程沒解釋好的問題我都作了深入的解釋,以及一些多余部分解釋、代碼都被我刪掉簡化了。
這份Qt OpenGL的3D繪圖及動畫教程,我基本會按照Nehe的OpenGL教程,只是將代碼的實現(xiàn)運用到Qt Creator中,當然其中加了。
下面對Qt中OpenGL做一個簡要介紹:
Qt中OpenGL主要是在QGLWidget類中完成的,而要使用QtOpenGL模塊,需要在項目文件( .pro)中添加代碼"QT+=opengl"。
QGLWidget類是一個用來渲染OpenGL圖形的部件,提供了在Qt中顯示OpenGL圖形的功能。這個類使用起來很簡單,只需要繼承該類,然后像使用其他QWidget部件一樣來使用它。QGLWidget提供了3個方便的純虛函數(shù),可以在子類中通過重新實現(xiàn)它們來執(zhí)行典型的OpenGL任務(wù):
initializeGL():設(shè)置OpenGL渲染環(huán)境,定義顯示列表等。該函數(shù)只在第一次調(diào)用resizeGL()或paintGL()前被自動調(diào)用一次。
resizeGL():設(shè)置OpenGL的視口、投影等。每次部件改變大小時都會自動調(diào)用該函數(shù)。
paintGL():渲染OpenGL場景。每當部件需要更新時都會調(diào)用該函數(shù)。
(以上3個虛函數(shù)更具體的調(diào)用情況我會用另一篇文章來講明)
也就是說,Qt中當創(chuàng)建并顯示出一個QGLWidget子對象時,會自動依次調(diào)用initializeGL()、resizeGL()、paintGL(),完成當前場景的繪制;而當某些情況發(fā)生時,會根據(jù)情況決定是否自動調(diào)用initializeGL()、resizeGL(),一旦調(diào)用initializeGL()、resizeGL()了,會緊跟著調(diào)用paintGL()對場景進行重新繪制。

總結(jié)

以上是生活随笔為你收集整理的Qt中使用OpenGL进行绘图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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