資源簡介
請配合我的博客http://blog.csdn.net/m0_37876745/article/details/78232399使用
代碼片段和文件信息
/**
????這里使用到的是opengl?和?glut?進行編寫學習的筆記,一個簡單的出口
????使用到的開發庫有?linux?(gl?glu?glut)?windows(opengl32.lib?glu32.lib?glut32.lib)
????實現:?繪制一個三角錐和正方體
????一個關鍵點是init函數中的glEnable(GL_DEPTH_TEST);開啟深度測試
????自己關閉和打開看看效果有什么不同
*/
#include?
#include?
using?namespace?std;
GLfloat?g_angle?=?0;?//?設置旋轉的角度
//===========================OpenGL?部分=========================
//?初始化opengl的一些參數
void?init()
{
????glEnable(GL_DEPTH_TEST);
}
//------------------------------------
//?設置刷新時間
void?timer(int?p)
{
????glutPostRedisplay();
????glutTimerFunc(20?timer?0);
}
//-----------------------------------
//?顯示我們要繪制的模型
void?display()
{
?glClear(GL_COLOR_BUFFER_BIT?|?GL_DEPTH_BUFFER_BIT);?//?清理顏色緩存和深度緩存
?glLoadIdentity();?//?重置矩陣
?glTranslatef(0.0f?0.0f?-6.0f);
?//?設置旋轉的角度,這里glRotatef?第1個參數是角度,2~4?參數是指定旋轉軸
?//?這里我們設置于z軸作旋轉軸
?glRotatef(g_angle?0.0?0.0f?1.0f);
?g_angle?+=?1.0f;
?//?繪制三角錐
?//?這里是通過繪制4個三角形來拼接起來的
?glTranslatef(-1.5f?0.0f?0.0f);
?//設置棱錐轉的時候相當奇怪,變成了棱錐自轉,立方體圍繞著它公轉
?//glRotatef(g_angle?0.0?1.0f?0.0f);
?glBegin(GL_TRIANGLES);?
????//?第1個三角形?前面
????glColor3f(1.0f?0.0f?0.0f);
????glVertex3f(?0.0f??1.0f?0.0f);
????glColor3f(0.0f?1.0f?0.0f);
????glVertex3f(-1.0f?-1.0f?1.0f);
????glColor3f(0.0f?0.0f?1.0f);
????glVertex3f(?1.0f?-1.0f?1.0f);
????//?第2個三角形?左面
????glColor3f(1.0f?0.0f?0.0f);
????glVertex3f(?0.0f??1.0f?0.0f);
????glColor3f(0.0f?1.0f?0.0f);
????glVertex3f(-1.0f?-1.0f?-1.0f);
????glColor3f(0.0f?0.0f?1.0f);
????glVertex3f(-1.0f?-1.0f?1.0f);
????//?第3個三角形?右邊????
????glColor3f(1.0f?0.0f?0.0f);
????glVertex3f(?0.0f??1.0f?0.0f);
????glColor3f(0.0f?1.0f?0.0f);
????glVertex3f(?1.0f?-1.0f?1.0f);
????glColor3f(0.0f?0.0f?1.0f);
????glVertex3f(1.0f?-1.0f?-1.0f);
????//?第4個三角形?后邊????
????glColor3f(1.0f?0.0f?0.0f);
????glVertex3f(?0.0f??1.0f?0.0f);
????glColor3f(0.0f?1.0f?0.0f);
????glVertex3f(?1.0f?-1.0f?-1.0f);
????glColor3f(0.0f?0.0f?1.0f);
????glVertex3f(-1.0f?-1.0f?-1.0f);
?glEnd();
?//?繪制一個正方體
?glTranslatef(3.0f?0.0f?0.0f);
?//glRotatef(g_angle?1.0?0.0f?0.0f);
?glBegin(GL_QUADS);
????//?前面
????glColor3f(1.0f?0.0f?0.0f);
????glVertex3f(-1.0f?1.0f?1.0f);
????glVertex3f(?1.0f?1.0f?1.0f);
????glVertex3f(?1.0f-1.0f?1.0f);
????glVertex3f(-1.0f-1.0f?1.0f);
????//?左面
????glC
- 上一篇:視頻火焰檢測
- 下一篇:Basler工業相機SDK sample
評論
共有 條評論