实验1《实验环境配置和基本图元绘制》
一、实验目的
配置基本实验环境、安装软件包、建立工程和绘制基本图元,要求学会点、线、三角形、四边形的绘制方法,学会消息传递和响应机制,用一个实例完成上述要求。
二、实验内容
1.配置OpenGL绘图环境;
2.绘制点、线、三角形、四边形等基本图元。
运行结果
有点抽象的蝴蝶结
源代码
#include <GL/glut.h>
void DrawTriangle() {
glColor3f(0.0, 1.0, 0.0);
glBegin(GL_TRIANGLES);
glVertex2f(0.5, -0.5);
glVertex2f(0.5, 0.5);
glVertex2f(0.0, 0.0);
glEnd();
glBegin(GL_TRIANGLES);
glVertex2f(-0.5, -0.5);
glVertex2f(-0.5, 0.5);
glVertex2f(0.0, 0.0);
glEnd();
}
void DrawQuads() {
glColor3f(1.0, 0.0, 0.0);
glBegin(GL_QUADS);
glVertex2f(-0.2, -0.3);
glVertex2f(-0.2, 0.3);
glVertex2f(0.2, 0.3);
glVertex2f(0.2, -0.3);
glEnd();
}
void DrawLine() {
glColor3f(0.0, 0.0, 1.0);
glLineWidth(4);
glBegin(GL_LINES);
glVertex2f(-0.9, -0.9);
glVertex2f(-0.9, 0.9);
glVertex2f(0.9, 0.9);
glVertex2f(0.9, -0.9);
glVertex2f(0.9, 0.9);
glVertex2f(-0.9, 0.9);
glEnd();
}
void DrawPoint() {
glColor3f(1.0, 1.0, 1.0);
glPointSize(10);
glBegin(GL_POINTS);
glVertex2f(0, 0);
glEnd();
}
void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
DrawTriangle();//画三角形
DrawQuads();//画四边形
DrawLine();//线段
DrawPoint();//点
glutSwapBuffers();
}
int main(int argc, char *argv[]) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100, 100);
glutInitWindowSize(500, 500);
glutCreateWindow("1基本图元绘制-蝴蝶结");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}