OpenGL实战教程(3) -- 第二站:点、线、多边形的绘制(VS2015)

1、顶点函数

OpenGL中顶点是图形绘制的基础。先了解一下顶点相关的函数:
顶点函数:
glVertexN?() 和 lVertexN?v()
X:表示函数有几个参数:
?:表示函数参数的类型:
v: 表示参数是指针形式。
如:
glVertex2i(1, 3): 表示两个整数型参数,1=x坐标,3=y坐标,z坐标为0
glVertex2f(1.0f, 3.0f):表示两个浮点型参数,z坐标=0.0f,z坐标为0
glVertex3f(1.0f, 3.0f, 0.0f):表示三个浮点型参数:1.0f=x坐标,3.0f=y坐标,z坐标=0.0f
glVertex4f(1.0f, 3.0f, 0.0f, 1.0f):表示四个浮点型参数
GLfloat VertexArr3[] = {1.0f, 3.0f, 0.0f};
glVertex3fv(VertexArr3): 三元素浮点向量

glVertexN?() 中数据(?)类型取值:
s表示16位整数(OpenGL中将这个类型定义为GLshort):glVertex2i(1, 3)
i表示32位整数(OpenGL中将这个类型定义为GLint和GLsizei):glVertex2i(1, 3)
f表示32位浮点数(OpenGL中将这个类型定义为GLfloat和GLclampf):glVertex2f(1.0, 3.0)
d表示64位浮点数(OpenGL中将这个类型定义为GLdouble和GLclampd):glVertex2d(1.0, 3.0)

2、绘制点线多边

glBegin( /* 模式 / );
/
使用glVertex*系列函数指定点的位置 */
glEnd();

glBegin中的模式:

GL_POINTS:画点
GL_LINES:画线
GL_LINE_STRIP:画线组,首尾相连,不封闭
GL_LINE_LOOP:画线组头尾相连,封闭图
GL_TRIANGLES:三角形
GL_TRIANGLE_STRIP:三角形,头尾相连。
GL_TRIANGLE_FAN:三角形,扇形。
等等。

例:

// 画两个点
glBegin(GL_POINTS);
glVertex2f(0.0f, 0.0f);
glVertex2f(0.5f, 0.0f);
glEnd();

// 画一条线
glBegin(GL_LINES);
glVertex2f(0.0f, 0.0f);
glVertex2f(0.5f, 0.0f);
glEnd();

// 画三角形
glBegin(GL_TRIANGLES);
glVertex2f(0.0f, 0.0f);
glVertex2f(0.5f, 0.0f);
glVertex2f(0.5f, 0.5f);
glEnd();

3、源程序:画出正弦函数的图形

void Step2_DrawDot_Line_Polygon(void)
{
	const GLfloat factor_x = 0.1f;
	const GLfloat factor_y = 0.5f;
	GLfloat x; 
	glClear(GL_COLOR_BUFFER_BIT); 

	glBegin(GL_LINES); // 画线模式
		glVertex2f(-1.0f, 0.0f); 
		glVertex2f(1.0f, 0.0f); // 以上两个点可以画x轴 
		glVertex2f(0.0f, -1.0f); 
		glVertex2f(0.0f, 1.0f); // 以上两个点可以画y轴 
	glEnd(); 

	glBegin(GL_LINE_STRIP); // 画线组模式,上一条的线尾与本次线的线头相连
		for(x=-1.0f/ factor_x; x<1.0f/ factor_x; x+=0.01f)
		{ 
			glVertex2f(x*factor_x, sin(x)*factor_y);// 点坐标指定
		} 
	glEnd(); 
	glFlush(); 
}

运行结果:

在这里插入图片描述

4、源程序下载:

注意在debug-x86下编译。别的模式没有配置。
在这里插入图片描述

下载第二站源代码。

发布了30 篇原创文章 · 获赞 9 · 访问量 918

猜你喜欢

转载自blog.csdn.net/x879014419/article/details/105197130
今日推荐