• 大小: 17.43MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-08
  • 语言: 其他
  • 标签: opengl  qt  

资源简介

主要实现了对一个简单的立方体进行鼠标三键操作,包括放大缩小平移等类似cad的可视化操作,对实现网格可视化等opengl绘图需求有较强的参考意义,已在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 );                      //启用深度测试
    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

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           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

评论

共有 条评论