资源简介
本程序由QT+OpenGL开发而成,能以点,线,面,平滑表面等方式显示模型,支持自由旋转,缩放,拖动,能检查模型是否完整,并自动补全模型,能读取ascii编码的obj模型和CAD模型

代码片段和文件信息
#include
#include
#include
#include “math.h“
//#include
#include “glworkplace.h“
GLWorkplace::GLWorkplace(QWidget *parent)
: QGLWidget(parent)
{
timer = new QTimer(this);
modified = false;
}
GLWorkplace::~GLWorkplace()
{
//glDeleteList(obj);
for(int i=0;i deleteTexture(texture[i]);
}
void GLWorkplace::initializeGL()
{
stopSign = 0; //stopSign=1则不能加载文件
xrot=0;
yrot=0;
zrot=0;
xsig=ysig=zsig=0;
showAxis = true;
showBox = false;
showNormals = false;
texturesOn = false;
isSmooth = false;
editMade = NONE;
editDraw = false;
otfselectionType = TWO;
textureNum = 0;
infoBar = false;
scanRatio = 0;
pointSize = 1.0f;
lineWidth = 1.0f;
paintType = F; //初始化作图模式为三角形面
om = new CobjectModel;
QWidget::setMouseTracking(true);//开启鼠标跟踪,若为true则当鼠标不按下按钮也能触发mouseMoveEvent()
cfps = 0;
//************置matrix_rotate为单位矩阵用于trackball保存动作后的矩阵**********
glPushMatrix();
glLoadIdentity();
glGetDoublev(GL_MODELVIEW_MATRIX matrix_rotate);
glPopMatrix();
//*****************************************************************************
glEnable( GL_TEXTURE_2D );
//启动纹理贴图
glClearColor(0.0f0.0f0.0f0.0f);
glClearDepth( 1.0 );
//设置深度缓存
//glEnable( GL_DEPTH_TEST );
//glDisable( GL_DEPTH_TEST );
//启用深度测试
glDepthFunc( GL_LEQUAL );
//所作深度测试的类型
glClearStencil(0.0f);
glEnable(GL_STENCIL_TEST);
//使用0表示清除模版,启用 模版测试
//glHint( GL_PERSPECTIVE_CORRECTION_HINT GL_NICEST );
//纹理压缩GL_FASTESTGL_NICESTGL_DONT_CARE并使纹理与模型颜色混合
//反走样*************************
glEnable (GL_LINE_SMOOTH);
glEnable (GL_BLEND);
glBlendFunc (GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA);
glHint (GL_LINE_SMOOTH_HINT GL_DONT_CARE);
//*********************************************
//************消除多边形背面*****************
//glCullFace(GL_BACK);
//glFrontFace(GL_CCW);
//glEnable(GL_CULL_FACE);
//*******************************************
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
//glLightfv( GL_LIGHT1 GL_SPECULAR lightSpecular );
glLightfv( GL_LIGHT0 GL_AMBIENT light0.ambient );
//环境光
glLightfv( GL_LIGHT0 GL_DIFFUSE light0.diffuse );
//镜面光
glLightfv( GL_LIGHT0 GL_SPECULAR light0.specular );
glLightfv( GL_LIGHT0 GL_POSITION light0.position );
//灯光位置
//glLightModelfv(GL_LIGHT_MODEL_COLOR_CONTROL GL_SEPARATE_SPECULAR_COLOR);
glEnable(GL_LIGHT0);
//开启灯光
glEnable(GL_COLOR_MATERIAL);
//起用本身颜色混合
glShadeModel(GL_SMOOTH);
//平滑阴影
//**************融合****************
//glEnable( GL_BLEND );
//glBlendFunc( GL_SRC_ALPHA GL_ONE );
//glColor4f( 1.0 1.0 1.0 0.5 );
//glColor4f(0.1f 0.3f 0.3f 0.5f);
//**********************************
obj = makeobject();
//objfw = makeframework();
//*******************透视投影*****************
glMatrixMode(GL_PROJECTION);
//glMatrixMode(GL_PROJECTION)指明接下来的两行代码将影响projection matrix(投影
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 379904 2008-11-04 20:52 3DLab\3DLab.ncb
文件 388 2002-03-03 22:51 3DLab\3DLab.pro
文件 20759 2019-05-03 21:15 3DLab\3DLab.pro.user
文件 724 2007-05-26 16:48 3DLab\3DLab.qrc
文件 875 2008-11-04 20:51 3DLab\3DLab.sln
文件 874 2007-05-15 16:33 3DLab\3DLab.sln.old
..A..H. 33280 2008-11-04 20:52 3DLab\3DLab.suo
..A..H. 35840 2007-06-14 10:11 3DLab\3DLab.suo.old
文件 17648 2008-11-04 20:51 3DLab\3DLab.vcproj
文件 15699 2002-03-03 22:51 3DLab\3DLab.vcproj.8.00.old
文件 1433 2008-11-04 20:52 3DLab\3DLab.vcproj.DEVELOP-4F9E29B.xuyangjie.user
文件 1407 2007-06-14 10:11 3DLab\3DLab.vcproj.PP.LimiT.user
文件 29451 2007-05-26 16:10 3DLab\glworkplace.cpp
文件 5613 2007-05-20 20:30 3DLab\glworkplace.h
文件 26443 2007-05-28 05:36 3DLab\glworkplace_Runtime.cpp
文件 1339 2005-12-15 01:07 3DLab\images\copy.png
文件 1323 2005-12-15 01:07 3DLab\images\cut.png
文件 2107 2006-06-18 23:50 3DLab\images\delete_face.png
文件 1296 2007-05-26 16:53 3DLab\images\fixholes.png
文件 1205 2007-05-26 16:54 3DLab\images\fixpoints.png
文件 1416 2006-01-02 16:42 3DLab\images\flat.png
文件 3447 2006-01-02 16:42 3DLab\images\flatlines.png
文件 7358 2007-05-15 13:39 3DLab\images\icon.ico
文件 6013 2007-02-04 19:21 3DLab\images\lightposition.png
文件 852 2005-12-15 01:07 3DLab\images\new.png
文件 4655 2007-02-04 19:20 3DLab\images\no_edit.png
文件 2221 2005-12-15 01:07 3DLab\images\open.png
文件 1745 2005-12-15 01:07 3DLab\images\paste.png
文件 1387 2006-01-02 16:42 3DLab\images\points.png
文件 3512 2006-01-02 15:42 3DLab\images\save.png
............此处省略60个文件信息
- 上一篇:算法设计与分析.pdf
- 下一篇:DXPerience 11.2.5 汉化+破解
相关资源
- Scratch源码
- 酒店管理系统基于Qt Creator5)
- E4A无障碍跨程序操作类库(带源码、
- 设备管理系统源码
- 安卓wifi直连app源码
- 我的世界源码(易语言版)
- labview编程软件滤波器以及编写程序设
- 我的界面(visual foxpro)源码
- 易语言:一键cf基址源码
- The Secret Path 3D 3D魔方迷宫[源码][scra
- scratch垃圾分类源码(最终版本).sb
- 安卓QQ6.71协议源码易语言,qq协议源码
- 编译原理实验工具及参考源码(lex&
- E盾偷后台工具源码
- UNIX/LINUX编程实践教程的源码
- 十以内加减法练习 powerbuilder源码
- 农场开发项目
- OCR源码
- PLC上位机编程软件
- 用foobar2000听google音乐[更新一下]
- 学生信息管理系统源码
- vtk QT做的三维地质可视化系统2of2
- 用VC 编写的仿QQ聊天室程序源代码
- 毕业论文之温度传感器DS18B20(源码
- 可自定义导航网站源码
- 栅栏填充算法源码(VC)
- msp430F149操作红外接收模块源码
- Qt局域网聊天软件
- [免费]图像识别c 源码
- 周易排盘源码
评论
共有 条评论