资源简介
Qt5版Nehe OpenGL教程,第六课到第十课,详见博客:https://blog.csdn.net/caoshangpa/article/details/80323712

代码片段和文件信息
#include “lesson10.h“
#include
#include
#include
#include
#include
#include
Lesson10::Lesson10(QWindow *parent) :
QWindow(parent)
m_context(0)
m_x_rotate(0.0f)
m_y_rotate(0.0f)
m_z_rotate(0.0f)
{
setSurfaceType(QWindow::OpenGLSurface);
startTimer(20);
}
Lesson10::~Lesson10()
{
glDeleteTextures(1 &m_texture[0]);
}
void Lesson10::render(QPainter *painter)
{
Q_UNUSED(painter);
}
void Lesson10::render()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glViewport(00(GLint)width()(GLint)height()); // 重置当前视口
glMatrixMode(GL_PROJECTION); // 选择投影矩阵
glLoadIdentity(); // 重置投影矩阵为单位矩阵
gluPerspective(45.0f(GLdouble)width()/(GLdouble)height()0.1f100.0f);
glMatrixMode(GL_MODELVIEW); // 选择模型视图矩阵
glLoadIdentity(); // 重置模型视图矩阵为单位矩阵
float float_x float_y float_xb float_yb; // 用来将旗形的波浪分割成很小的四边形
glTranslatef(0.0f0.0f-12.0f); // 移入屏幕12个单位
glRotatef(m_x_rotate1.0f0.0f0.0f); // 绕 X 轴旋转
glRotatef(m_y_rotate0.0f1.0f0.0f); // 绕 Y 轴旋转
glRotatef(m_z_rotate0.0f0.0f1.0f); // 绕 Z 轴旋转
glBindTexture(GL_TEXTURE_2D m_texture[0]); // 选择纹理
glBegin(GL_QUADS); // 四边形绘制开始
for(int x = 0; x < 44; x++ ) // 沿X平面0-44循环(45点)
{
for(int y = 0; y < 44; y++ ) // 沿Y平面0-44循环(45点)
{
//接着开始使用循环进行多边形绘制。这里使用整型可以避免我以前所用的int()强制类型转换。
float_x = float(x)/44.0f; // 生成X浮点值
float_y = float(y)/44.0f; // 生成Y浮点值
float_xb = float(x+1)/44.0f; // X浮点值+0.0227f
float_yb = float(y+1)/44.0f; // Y浮点值+0.0227f
//上面我们使用4个变量来存放纹理坐标。每个多边形(网格之间的四边形)分别映射了纹理的1/44×1/44部分。
//循环首先确定左下顶点的值,然后我们据此得到其他三点的值。
glTexCoord2f( float_x float_y); // 第一个纹理坐标 (左下角)
glVertex3f( m_points[x][y][0] m_points[x][y][1] m_points[x][y][2] );
glTexCoord2f( float_x float_yb ); // 第二个纹理坐标 (左上角)
glVertex3f( m_points[x][y+1][0] m_points[x][y+1][1] m_points[x][y+1][2] );
glTexCoord2f( float_xb float_yb ); // 第三个纹理坐标 (右上角)
glVertex3f( m_points[x+1][y+1][0] m_points[x+1][y+1][1] m_points[x+1][y+1][2] );
glTexCoord2f( float_xb float_y ); // 第四个纹理坐标 (右下角)
glVertex3f( m_points[x+1][y][0] m_points[x+1][y][1] m_points[x+1][y][2] );
}
}
glEnd(); // 四边形绘制结束
}
void Lesson10::initialize()
{
loadGLTexture(); // 加载纹理
glEnable(GL_TEXTURE_2D); // 启用纹理映射
glShadeModel(GL_SMOOTH); // 启用平滑着色
glClearColor(0.0f 0.0f 0.0f 0.0f); // 黑色背景
glClearDepth(1.0f); // 设置深度缓存
glEnable(GL_DEPTH_TEST); // 启用深度测试
glDepthFunc(GL_LEQUAL);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 147968 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\debug\lesson10.exe
文件 774928 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\debug\lesson10.ilk
文件 215701 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\debug\lesson10.obj
文件 2125824 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\debug\lesson10.pdb
文件 1454080 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\debug\lesson10.vc.pdb
文件 179487 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\debug\main.obj
文件 3505 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\debug\moc_lesson10.cpp
文件 180968 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\debug\moc_lesson10.obj
文件 349888 2018-05-17 12:39 Qt5版NeHe OpenGL教程6-10\lesson10\debug\qrc_src.cpp
文件 72019 2018-05-17 12:39 Qt5版NeHe OpenGL教程6-10\lesson10\debug\qrc_src.obj
文件 66616 2014-06-27 06:02 Qt5版NeHe OpenGL教程6-10\lesson10\image\Tim.bmp
文件 7844 2018-05-17 14:10 Qt5版NeHe OpenGL教程6-10\lesson10\lesson10.cpp
文件 1141 2018-05-17 14:18 Qt5版NeHe OpenGL教程6-10\lesson10\lesson10.h
文件 142 2018-05-17 11:21 Qt5版NeHe OpenGL教程6-10\lesson10\lesson10.pro
文件 23749 2018-05-17 14:19 Qt5版NeHe OpenGL教程6-10\lesson10\lesson10.pro.user
文件 318 2018-05-17 12:39 Qt5版NeHe OpenGL教程6-10\lesson10\main.cpp
文件 23568 2018-05-17 12:39 Qt5版NeHe OpenGL教程6-10\lesson10\Makefile
文件 37118 2018-05-17 12:39 Qt5版NeHe OpenGL教程6-10\lesson10\Makefile.Debug
文件 37157 2018-05-17 12:39 Qt5版NeHe OpenGL教程6-10\lesson10\Makefile.Release
文件 92 2014-06-27 06:02 Qt5版NeHe OpenGL教程6-10\lesson10\src.qrc
文件 152064 2018-05-15 16:12 Qt5版NeHe OpenGL教程6-10\lesson6\debug\lesson6.exe
文件 983344 2018-05-15 16:12 Qt5版NeHe OpenGL教程6-10\lesson6\debug\lesson6.ilk
文件 221446 2018-05-15 16:12 Qt5版NeHe OpenGL教程6-10\lesson6\debug\lesson6.obj
文件 2125824 2018-05-15 16:12 Qt5版NeHe OpenGL教程6-10\lesson6\debug\lesson6.pdb
文件 1470464 2018-05-15 16:12 Qt5版NeHe OpenGL教程6-10\lesson6\debug\lesson6.vc.pdb
文件 179396 2018-05-15 15:25 Qt5版NeHe OpenGL教程6-10\lesson6\debug\main.obj
文件 3483 2018-05-15 15:25 Qt5版NeHe OpenGL教程6-10\lesson6\debug\moc_lesson6.cpp
文件 180942 2018-05-15 15:25 Qt5版NeHe OpenGL教程6-10\lesson6\debug\moc_lesson6.obj
文件 346911 2018-05-15 15:11 Qt5版NeHe OpenGL教程6-10\lesson6\debug\qrc_src.cpp
文件 72023 2018-05-15 15:11 Qt5版NeHe OpenGL教程6-10\lesson6\debug\qrc_src.obj
............此处省略96个文件信息
- 上一篇:ospf 网络设计解决方案
- 下一篇:vc 实现的教务管理系统
相关资源
- OpenGL参考手册
- Qt Creator opengl实现四元数鼠标控制轨迹
- QT局域网聊天系统(基于QT5.修改过)
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- OPENGL实现世界上最小的3D游戏
- VS2012OpenGL配置所需要的全部libdllh文件
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 图形学 - OpenGL实现3种三维茶壶显示源
- QT5.5入门与项目实战
- opengl程序-会跳舞的骷髅
- opengl实现三维网格光顺Laplacian算法
- opengl——爆炸
- OpenGL三维地形建模
- opengl游戏编程徐明亮版(含源码)
- 用OPENGL画的一个简单的直升飞机
- opengl完美天空盒
- 3D绘图程序设计:使用Direct3D 10/9和Ope
- OpenGL绘制可运动自行车源程序.zip
评论
共有 条评论