avatar

OpenGL实验二:OpenGL绘制二维图形

1.实验目的:

  • 熟悉编程环境;
  • 了解光栅图形显示器的特点;
  • 了解计算机绘图的特点;
  • 利用VC+OpenGL作为开发平台设计程序,以能够在屏幕上生成任意一个像素点为本实验的结束。

2.实验内容:

(1) 了解和使用VC的开发环境,理解简单的OpenGL程序结构。

(2) 掌握OpenGL提供的基本图形函数,尤其是生成点的函数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <GL/glut.h>
void display(void)
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);

glColor3f(0.0f, 1.0f, 0.0f); //定义正方形的颜色
glRectf(-0.5f, -0.5f, 0.5f, 0.5f); //绘制一个正方形
glBegin (GL_TRIANGLES); //绘制一个三角形

glColor3f (1.0f, 0.0f, 0.0f); glVertex2f (0.0f, 1.0f);

glColor3f (0.0f, 1.0f, 0.0f); glVertex2f (0.8f, -0.5f);

glColor3f (0.0f, 0.0f, 1.0f); glVertex2f (-0.8f, -0.5f);

glEnd ();

glPointSize(3);

glBegin (GL_POINTS); //绘制三个点

glColor3f (1.0f, 0.0f, 0.0f); glVertex2f (-0.4f, -0.4f);

glColor3f (0.0f, 1.0f, 0.0f); glVertex2f (0.0f, 0.0f);

glColor3f (0.0f, 0.0f, 1.0f); glVertex2f (0.4f, 0.4f);

glEnd ();

glFlush();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("Hello World!");
glutDisplayFunc(&display);
glutMainLoop();
return 0;

}

屏幕中间为(0.0f,0.0f),向上为y轴正半轴,向右为x轴正半轴。
具体函数作用见该博客[https://blog.csdn.net/augusdi/article/details/23747991](

文章作者: 折花入酒
文章链接: https://nortona.github.io/2020/04/26/OpenGL%E5%AE%9E%E9%AA%8C%E4%BA%8C%EF%BC%9AOpenGL%E7%BB%98%E5%88%B6%E4%BA%8C%E7%BB%B4%E5%9B%BE%E5%BD%A2/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 折花入酒blog