资源简介
具体实现,已经上传,内部有完整功能代码
加载效果已经发帖,物超所值

代码片段和文件信息
#include “glwidget.h“
#include
#include
#include
#include
#include
GLWidget::GLWidget(QWidget *parent)
: QOpenGLWidget(parent)
m_xRot(0) m_yRot(0) m_zRot(0)
{
obj = _glReadOBJ(“target.obj“);
//_glReadMTL(obj“Blank.mtl“);
//Busto_Chappie
model = new Model(QString(“Busto_Chappie.obj“));
}
GLWidget::~GLWidget()
{
}
void GLWidget::initializeGL()
{
// connect(context() &QOpenGLContext::aboutToBeDestroyed this &GLWidget::cleanup);
initializeOpenGLFunctions();
gluLookAt(000 001 010);
}
void GLWidget::paintGL()
{
static bool first_paint=true;
if(first_paint){
m_xRot = m_zRot = 0;
//m_yRot = 180*16.0f;
m_yRot = 0;
first_paint = false ;
}
glClearColor(0.8 0.8 0.8 1);
glColor3f(0.9 0.9 0.9);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
//glEnable(GL_CULL_FACE); //前部图形透视
glMatrixMode(GL_PROJECTION);
glMatrixMode(GL_MODELVIEW);
GLfloat lightPosition[] = { 50.0f -50.0f 100.0f 1.0f };
glLightfv(GL_LIGHT0 GL_POSITION lightPosition);
glEnable(GL_LIGHTING); //启用光源
glEnable(GL_LIGHT0); //使用指定灯光
//if (obj)
// _glDraw(obj _GL_SMOOTH ); //_glDraw(obj _GL_SMOOTH | _GL_TEXTURE); //_GL_COLOR _GL_FLAT _GL_SMOOTH
if(model){
model->set_xyz(m_xRot/16.0f m_yRot/16.0f m_zRot/16.0f);
qDebug()< model->render();
}
}
void GLWidget::resizeGL(int w int h)
{
// m_proj.setToIdentity();
// m_proj.perspective(45.0f GLfloat(w) / h 0.01f 100.0f);
}
QSize GLWidget::minimumSizeHint() const
{
return QSize(50 50);
}
QSize GLWidget::sizeHint() const
{
return QSize(400 400);
}
static void qNormalizeAngle(int &angle)
{
while (angle < 0)
angle += 360 * 16;
while (angle > 360 * 16)
angle -= 360 * 16;
}
void GLWidget::setXRotation(int angle)
{
qNormalizeAngle(angle);
if (angle != m_xRot) {
m_xRot = angle;
emit xRotationchanged(angle);
update();
}
}
void GLWidget::setYRotation(int angle)
{
qNormalizeAngle(angle);
if (angle != m_yRot) {
m_yRot = angle;
emit yRotationchanged(angle);
update();
}
}
void GLWidget::setZRotation(int angle)
{
qNormalizeAngle(angle);
if (angle != m_zRot) {
m_zRot = angle;
emit zRotationchanged(angle);
update();
}
}
void GLWidget::mousePressEvent(QMouseEvent *event)
{
m_lastPos = event->pos();
}
void GLWidget::mouseMoveEvent(QMouseEvent *event)
{
int dx = event->x() - m_lastPos.x();
int dy = event->y() - m_lastPos.y();
if (event->buttons() & Qt::LeftButton) {
setXRotation(m_
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5160 2019-08-22 12:19 qt_opengl_obj\glwidget.cpp
文件 1873 2019-08-22 10:04 qt_opengl_obj\glwidget.h
文件 461 2019-08-21 23:01 qt_opengl_obj\hellogl2.pro
文件 23920 2019-08-22 21:52 qt_opengl_obj\hellogl2.pro.user
文件 9176 2019-08-21 23:08 qt_opengl_obj\loadFile.cpp
文件 2834 2019-08-21 23:12 qt_opengl_obj\loadFile.h
文件 5690 2019-08-18 23:45 qt_opengl_obj\main.cpp
文件 3208 2016-06-10 14:48 qt_opengl_obj\mainwindow.cpp
文件 214 2019-08-21 23:12 qt_opengl_obj\mainwindow.h
文件 4532 2019-08-22 12:24 qt_opengl_obj\model.cpp
文件 2785 2019-08-22 10:48 qt_opengl_obj\model.h
文件 2112 2019-08-19 17:12 qt_opengl_obj\transform.h
文件 5416 2019-08-22 11:24 qt_opengl_obj\window.cpp
文件 587 2019-08-21 23:13 qt_opengl_obj\window.h
文件 1934602 2019-08-22 21:59 qt_opengl_obj\新建位图图像.bmp
相关资源
- OpenGL参考手册
- vtk QT做的三维地质可视化系统2of2
- Qt局域网聊天软件
- Qt Creator opengl实现四元数鼠标控制轨迹
- QT局域网聊天系统(基于QT5.修改过)
- qt-电子点菜系统
- OpenGL文档,api大全,可直接查询函数
- C 餐厅叫号系统(QT平)
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- QT 实现文件下载
- qt图像处理
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- QT,JPEG解码源代码(已完成)
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- Qt 播放音频文件
- OpenGL导入贴图的Texture类
-
AutoCAD ob
jectARX二次开发实例-状态栏 - 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- Qt 读取16进制的data文件
- MQTT+串口(usart)透传
- 易语言QQTEA算法源码
- VC工程转Qt工程文件的工具
- OPENGL实现世界上最小的3D游戏
评论
共有 条评论