1.一直不明白这个glClear
结果如下图所示: 红配绿

2.设置顶点
opengl的顶点用glVertex表示,同时需要把顶点放在glBegin与glEnd之间才有意义,否则会丢掉
glBegin的mode参数的含义参考《OpenGL编程指南第七版》图2-7几何图元类型
3.画一个余弦函数
注意: cos的单位是弧度

-
#include <GL/glut.h>
-
void display()
-
{
-
glClearColor(1.0, 0.0, 0.0, 0.0);
//设置清除的颜色是red
-
glClear(GL_COLOR_BUFFER_BIT); //用设置的颜色来清窗口,感觉默认是黑色,这儿设为red就用red来填窗口
-
glColor3f(0.0, 1.0, 0.0);
//设置颜色是绿色,用绿色来画矩形
-
glRectf(-0.5f,-0.5f, 0.5f, 0.5f);
//画一个矩形,opengl的坐标范围(-1,1),坐标原点在窗口的中心
-
glFlush(); //立即刷新到窗口上
-
}
- int

2.设置顶点
opengl的顶点用glVertex表示,同时需要把顶点放在glBegin与glEnd之间才有意义,否则会丢掉
-
#include <GL/glut.h>
-
void display()
-
{
-
glClearColor(0.0, 0.0, 0.0, 0.0); //black
-
glClear(GL_COLOR_BUFFER_BIT);
-
-
//glBegin(GL_POINTS);
-
//glBegin(GL_LINES);
-
//glBegin(GL_LINE_STRIP);
-
//glBegin(GL_LINE_LOOP);
-
//glBegin(GL_TRIANGLES);
-
//glBegin(GL_TRIANGLE_STRIP);
-
//glBegin(GL_TRIANGLE_FAN);
-
//glBegin(GL_QUADS);
-
glBegin(GL_POLYGON);
-
glColor3f(1.0, 0.0, 0.0); //red
-
glVertex2f(0.0, 0.0);
-
glVertex2f(0.0, 0.5);
-
glVertex2f(0.5, 0.0);
-
glVertex2f(0.5, 0.5);
-
glEnd();
-
-
glFlush();
-
}
-
int main(int argc, char* argv[])
-
{
-
glutInit(&argc, argv);
-
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
-
glutInitWindowPosition(0, 0);
-
glutInitWindowSize(300, 300);
-
glutCreateWindow("OpenGL 3D View");
-
glutDisplayFunc(display);
-
glutMainLoop();
-
return 0;
- }
3.画一个余弦函数
-
#include <GL/glut.h>
-
#include <stdio.h>
-
#include <math.h>
-
#define PI 3.1415926
-
void display()
-
{
-
GLfloat i;
-
glClearColor(0.0, 0.0, 0.0, 0.0); //black
-
glClear(GL_COLOR_BUFFER_BIT);
-
-
glBegin(GL_LINES);
-
glColor3f(0.0, 1.0, 0.0); //green
-
glVertex2f(-1.0, 0.0);
-
glVertex2f(1.0, 0.0);
-
-
glVertex2f(0.0, -1.0);
-
glVertex2f(0.0, 1.0);
-
glEnd();
-
-
glBegin(GL_LINE_STRIP);
-
glColor3f(1.0, 0.0, 0.0); //red
-
for(i=-PI; i<=PI; i+=0.01)
-
{
-
glVertex2f(i/PI, cos(i));
-
}
-
glEnd();
-
-
glFlush();
-
}
- main函数一样
