目標:使用OpenGL提供的函數繪制矩形、線段、三角形等基本圖形元素
所需效果



實驗步驟
1、配置OpenGL(詳情參見OpenGL的配置)
2、頭文件引入
#include <gl/glut.h>
3、編寫方法體
1>矩形實現
//繪制矩形
void DisplayRectangle(void)
{glClear(GL_COLOR_BUFFER_BIT); //刷新顏色緩沖區;glColor3f(0.0f, 0.0f, 230.0f); //繪圖顏色(藍色)glRectf(50.0f, 50.0f, 150.0f, 100.0f); //繪制矩形,只要設定矩形左下角點坐標(50,50)和右上角點坐標(150,100)即可glFlush(); //用于刷新命令隊列和緩沖區,使所有尚未被執行的OpenGL命令得到執行;
}
2>直線實現
//繪制直線
void DisplayLine(void)
{glClear(GL_COLOR_BUFFER_BIT); //刷新顏色緩沖區;glColor3f(1.0f, 0.0f, 0.0f); //繪圖顏色(紅色)glBegin(GL_LINES); //使用glBegin,slEnd和繪制直線的常量GL_LINESglVertex2f(50, 50); //點坐標glVertex2f(100, 100); //點坐標glEnd();glFlush(); //用于刷新命令隊列和緩沖區,使所有尚未被執行的OpenGL命令得到執行;
}
3>三角形實現
//繪制三角形
void DisplayTrainguler(void)
{glClear(GL_COLOR_BUFFER_BIT); //刷新顏色緩沖區;glColor3f(0.0f, 1.0f, 0.0f); //繪圖顏色(綠色)glBegin(GL_TRIANGLES); //使用glBegin,slEnd和繪制直線的常量GL_TRIANGLESglVertex2f(50, 50); //點坐標glVertex2f(100, 100); //點坐標glVertex2f(150, 50); //點坐標glEnd();glFlush(); //用于刷新命令隊列和緩沖區,使所有尚未被執行的OpenGL命令得到執行;
}
3、書寫主函數
int main(int argc, char* argv[])
{glutInit(&argc, argv); //初始化GLUT庫;glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); //設置顯示模式;(緩沖,顏色類型)glutInitWindowSize(600, 500); //繪圖窗口大小glutInitWindowPosition(100, 120); //窗口左上角在屏幕的位置glutCreateWindow("圖形繪制"); //創建窗口,標題為“圖形繪制”;Initial();glutDisplayFunc(DisplayTrainguler); //調用繪圖函數三角形//glutDisplayFunc(DisplayLine); //調用繪圖函數直線//glutDisplayFunc(DisplayRectangle); //調用繪圖函數矩形glutMainLoop(); //表示開始運行程序,用于程序的結尾;return 0;
}