資源簡介
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 實現的教務管理系統
評論
共有 條評論