计算机图形学opengl版 多种直线绘制函数讲解(五角星绘制)

  • Post author:
  • Post category:其他


glBegin(GL_LINES);

glBegin(GL_LINE_STRIP);

glBegin(GL_LINE_LOOP);

1.glBegin(GL_LINES);

void lines() {
	int p1[] = { 60,40 };
	int p2[] = { 10,10 };
	int p3[] = { 30,70 };
	int p4[] = { 50,10 };
	int p5[] = { 0,40 };
	glClear(GL_COLOR_BUFFER_BIT);//清除颜色缓冲区
	glColor3f(0.3, 0.1, 0.8);
	glPointSize(3);//一个点占据三个像素
	glBegin(GL_LINES);//开始画图
	glVertex2iv(p1);//向量画点
	glVertex2iv(p2);
	glVertex2iv(p3);
	glVertex2iv(p4);
	glVertex2iv(p5);
	glEnd();//结束画图
	glFlush();//缓存,必不可少,使图像显示
}

说明:GL_LINES只会选取两点画一条直线

2.glBegin(GL_LINE_STRIP);

void lines() {
	int p1[] = { 60,40 };
	int p2[] = { 10,10 };
	int p3[] = { 30,70 };
	int p4[] = { 50,10 };
	int p5[] = { 0,40 };
	glClear(GL_COLOR_BUFFER_BIT);//清除颜色缓冲区
	glColor3f(0.3, 0.1, 0.8);
	glPointSize(3);//一个点占据三个像素
	glBegin(GL_LINE_STRIP);//开始画图
	glVertex2iv(p1);//向量画点
	glVertex2iv(p2);
	glVertex2iv(p3);
	glVertex2iv(p4);
	glVertex2iv(p5);
	glEnd();//结束画图
	glFlush();//缓存,必不可少,使图像显示
}

说明:这个函数,如果当前点有下一个点,则会选取当前点和下一个点画一条直线

3.glBegin(GL_LINE_LOOP);

void lines() {
	int p1[] = { 60,40 };
	int p2[] = { 10,10 };
	int p3[] = { 30,70 };
	int p4[] = { 50,10 };
	int p5[] = { 0,40 };
	glClear(GL_COLOR_BUFFER_BIT);//清除颜色缓冲区
	glColor3f(0.3, 0.1, 0.8);
	glPointSize(3);//一个点占据三个像素
	glBegin(GL_LINE_LOOP);//开始画图
	glVertex2iv(p1);//向量画点
	glVertex2iv(p2);
	glVertex2iv(p3);
	glVertex2iv(p4);
	glVertex2iv(p5);
	glEnd();//结束画图
	glFlush();//缓存,必不可少,使图像显示
}

说明:此函数会将当前点与下一点进行直线绘制,最后一点的下一点默认为第一个点



版权声明:本文为weixin_53110679原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。