基本操作:自定义函数和窗口设置
//自定义函数
void init(){
//rgb都是1,黑色背景颜色
glClearColor(1.0,1.0,1.0,0.0);
//正投影方式
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//显示的范围,超过部分不会显示出来
gluOrtho2D(-10,20,-10,20);
}
//主方法,格式是固定的
//调用glut库
int main(int argc,char* argv[]){
glutInit(&argc,argv);
//RGB显示模式
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
//显示位置,靠右x大靠下y大
glutInitWindowPosition(300,300);
//窗口大小
glutInitWindowSize(600,500);
//会显示窗口名字
glutCreateWindow("Lines");
//init是需要自己写的方法
init();
//回调函数
glutDisplayFunc(lines);
glutMainLoop();
//因为主方法需要有返回值
return 0;
}
绘制线段:GL_LINES;GL_LINE_STRIP;GL_LINE_LOOP;
void lines(){
int p1[] = {6,4};
int p2[] = {1,1};
int p3[] = {3,7};
int p4[] = {5,1};
int p5[] = {0,4};
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.3, 0.1, 0.8);
glPointSize(3);
//单线
//glBegin(GL_LINES);
//按顺序连接画线
//glBegin(GL_LINE_STRIP);
//封闭
glBegin(GL_LINE_LOOP);
//向量表示的点数据在数组p1里
glVertex2iv(p1);
glVertex2iv(p2);
glVertex2iv(p3);
glVertex2iv(p4);
glVertex2iv(p5);
//glVertex2iv(p1);
glEnd();
//显示的缓存发送到显示器中
glFlush();
}
GL_LINE_LOOP运行效果图:
绘制多边形:GL_POLYGON;GL_TRIANGLES(三角形);GL_QUADS(四边形)
void polygonTriangle(){
int p1[] = {1,3};
int p2[] = {3,0};
int p3[] = {6,0};
int p4[] = {7,3};
int p5[] = {6,6};
int p6[] = {3,6};
int p7[] = {4,8};
int p8[] = {5,8};
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0, 0.8, 0.5);
glPointSize(3);
//点
//glBegin(GL_POINTS);
//多边形
//glBegin(GL_POLYGON);
//三角形
//glBegin(GL_TRIANGLES);
//四边形
glBegin(GL_QUADS);
glVertex2iv(p1);
glVertex2iv(p2);
glVertex2iv(p3);
glVertex2iv(p4);
glVertex2iv(p5);
glVertex2iv(p6);
glVertex2iv(p7);
glVertex2iv(p8);
glEnd();
glFlush();
}
运行效果图:
封闭多边形顺序连接
三角形
四边形: