資源簡(jiǎn)介
主要實(shí)現(xiàn)了對(duì)一個(gè)簡(jiǎn)單的立方體進(jìn)行鼠標(biāo)三鍵操作,包括放大縮小平移等類似cad的可視化操作,對(duì)實(shí)現(xiàn)網(wǎng)格可視化等opengl繪圖需求有較強(qiáng)的參考意義,已在qt5.11 msvc2017 64bitrelease下編譯通過,附有編譯完成的exe
代碼片段和文件信息
#include?“glwidget.h“
glwidget::glwidget(QWidget?*parent):QOpenGLWidget(parent)
{
????zscale=10;
????verticalAngle?=?0.0f;
????horizonAngle?=?0.0f;
????center.setX(0);
????center.setZ(0);
????center.setY(0);
????/*the?coordinate?blew?need?to?coordinated?with?the?input?flight*/
????eye.setX(0.f);
????eye.setY(0.f);
????eye.setZ(100.f);
????upside.setX(1.f);
????upside.setY(1.f);
????upside.setZ(1.f);
????upside.normalize();
????TempTranslateVec.setX(0.0);
????TempTranslateVec.setY(0.0);
????TempTranslateVec.setZ(0.0);
????viewport.setX(0.f);
????viewport.setY(0.f);
????viewport.setWidth(911);
????viewport.setHeight(641);
}
glwidget::~glwidget(){}
void?glwidget::resizeGL(int?w?int?h){
????setGeometry(this->x()?this->y()?wh);
????glViewport(0?0
???????????????w?h);
????glMatrixMode(GL_PROJECTION);??????????????????????//選擇投影矩陣
????glLoadIdentity();?????????????????????????????????//重置投影矩陣
????gluPerspective(45?(double)?w?/?h?0.1?100000);
????glMatrixMode(GL_MODELVIEW);???????????????????????//選擇模型觀察矩陣
}
void?glwidget::initializeGL(){
????setGeometry(0?0?600600);
????glEnable(GL_LINE_SMOOTH);
????????glHint(GL_LINE_SMOOTH_HINT?GL_NICEST);
????//setGeometry(this->x()?this->y()?this->width()this->height());
????glShadeModel(?GL_SMOOTH?);
????glEnable(GL_BLEND);
????glBlendFunc(GL_SRC_ALPHA?GL_ONE_MINUS_SRC_ALPHA);
????glLineWidth(0.5);
????glClearColor(?82.0/255?87.0/255?110.0/2550.0);????????????????//the?same?color?as?paraview‘s?background
????//glEnable(GL_CULL_FACE);???????????????????????//啟用剔除操作效果
????glClear(GL_DEPTH_BUFFER_BIT);
????glEnable(?GL_DEPTH_TEST?);??????????????????????//啟用深度測(cè)試
????glDepthFunc(?GL_LEQUAL???);???????????????????????//若輸入的深度值小于參考值,則通過(so?wei
}
void?glwidget::paintGL(){
????resizeGL(this->width()this->height());
????glClear(GL_COLOR_BUFFER_BIT);
????glLoadIdentity();
????const?float?pi=3.14159265358;
????eye.setX(zscale*cos(pi*verticalAngle/180.0)*cos(pi*horizonAngle/180.0)+center.x());
????eye.setY(zscale*sin(pi*verticalAngle/180.0)+center.y());
????eye.setZ(zscale*cos(pi*verticalAngle/180.0)*sin(pi*horizonAngle/180.0)+center.z());
????glTranslatef(TempTranslateVec.x()TempTranslateVec.y()TempTranslateVec.z());
????gluLookAt(eye.x()eye.y()?eye.z()
??????????????center.x()center.y()center.z()
??????????????0.01.00.0);
????????glColor3f(1.00.00.0);
????????glBegin(GL_LINES);
????????glVertex3f(111);
????????glVertex3f(11-1);
????????glVertex3f(111);
????????glVertex3f(1-11);
????????glVertex3f(1-1-1);
????????glVertex3f(11-1);
????????glVertex3f(1-1-1);
????????glVertex3f(1-11);
????????glVertex3f(-111);
????????glVertex3f(-11-1);
????????glVertex3f(-111);
????????glVertex3f(-1-11);
????????glVertex3f(-1-1-1);
????????glVertex3f(-11-1);
????????glVertex3f(-1-1-1);
????????glVertex3f(-1-11);
????????glVertex3f(111);
????????glVertex3f(-111);
????????glVertex
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-08-29?12:18??opengldemo3D\
?????目錄???????????0??2018-08-29?12:19??opengldemo3D\exe\
?????文件?????4173928??2014-03-11?18:54??opengldemo3D\exe\D3Dcompiler_47.dll
?????文件???????15360??2018-06-15?13:09??opengldemo3D\exe\libEGL.dll
?????文件?????2509312??2018-06-15?13:09??opengldemo3D\exe\libGLESV2.dll
?????文件????20923392??2016-06-14?20:00??opengldemo3D\exe\opengl32sw.dll
?????文件???????44032??2018-08-29?12:25??opengldemo3D\exe\opengldemo.exe
?????目錄???????????0??2018-08-29?12:19??opengldemo3D\exe\platforms\
?????文件?????1426944??2018-06-15?13:18??opengldemo3D\exe\platforms\qwindows.dll
?????文件?????5916160??2018-08-29?12:19??opengldemo3D\exe\Qt5Core.dll
?????文件?????6338560??2018-06-15?13:13??opengldemo3D\exe\Qt5Gui.dll
?????文件??????328704??2018-06-15?22:43??opengldemo3D\exe\Qt5Svg.dll
?????文件?????5541376??2018-06-15?13:15??opengldemo3D\exe\Qt5Widgets.dll
?????文件???????21440??2018-08-29?11:52??opengldemo3D\glut.h
?????文件????????4983??2018-08-29?12:17??opengldemo3D\glwidget.cpp
?????文件?????????855??2018-08-29?12:06??opengldemo3D\glwidget.h
?????目錄???????????0??2018-08-29?12:18??opengldemo3D\lib\
?????文件???????79898??1998-08-18?16:25??opengldemo3D\lib\glut32.lib
?????文件?????????183??2018-08-29?11:31??opengldemo3D\main.cpp
?????文件?????????281??2018-08-29?11:40??opengldemo3D\mainwindow.cpp
?????文件?????????361??2018-08-29?11:40??opengldemo3D\mainwindow.h
?????文件????????1234??2018-08-29?12:12??opengldemo3D\mainwindow.ui
?????文件????????1142??2018-08-29?11:54??opengldemo3D\opengldemo.pro
?????文件???????23930??2018-08-29?12:06??opengldemo3D\opengldemo.pro.user
評(píng)論
共有 條評(píng)論