OpenGL(二)二维图形绘制

#include "stdafx.h"
#include<GL/freeglut.h>
#include<GLFW/glfw3.h>

// 绘图函数
void display()
{
	// 清空颜色缓存和深度缓存
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

	// glBegin 的参数指定绘制的形状

	/*
	GL_POINTS			独立点集
	GL_LINES			两点相连为线段
	GL_POLYGON			凸多边形
	GL_TRIANGLES		三角形
	GL_QUADS			四边形
	GL_LINE_STRIP		顶点相连为折线
	GL_LINE_LOOP		顶点相连为闭合折线
	GL_TRIANGLE_STRIP	三角形条带
	GL_TRIANGLE_FAN		三角形扇面
	GL_QUAD_STRIP		四边形条带
	*/

	// glEnable 用来开启 OpenGL 的各种功能
	// 但是不能写在 glBegin 和 glEnd 之间

	// 设置线宽
	glEnable(GL_LINE_WIDTH);
	glLineWidth(60.0f);

	// 设置点的直径
	glEnable(GL_POINT_SIZE);
	glPointSize(20.0f);

	// 顶点写在 glBegin() 和 glEnd() 之间
	glBegin(GL_LINES);

	// 指定顶点的颜色
	glColor3f(0.5, 0.5, 0.9);

	for (GLfloat i = 0; i < 0.8; i += 0.1)
	{
		for (GLfloat j = 0; j < 0.8; j += 0.1)
		{
			// 指定节点的坐标
			glVertex2f(i, j);
		}
	}

	// 绘图结束
	glEnd();

	// 刷新屏幕
	glFlush();
}

int main()
{
	glfwInit();
	GLFWwindow* window = glfwCreateWindow(400, 400, "hello, glfw", NULL, NULL);
	glfwMakeContextCurrent(window);
	while (glfwWindowShouldClose(window) == GL_FALSE)
	{
		// 调用绘图函数
		display();

		glfwSwapBuffers(window);
		glfwPollEvents();
	}
	glfwDestroyWindow(window);
	glfwTerminate();
	return 0;
}

线段

猜你喜欢

转载自blog.csdn.net/lolimostlovely/article/details/82670785