一. OpenGL 基本绘制
开发环境:VC++2008 + OpenGL 3
用两种不同的方法绘制两个正方形;绘制四个顶点;绘制两条平行线;如下图;
代码如下:
#include <GL/glut.h>
#include <math.h>
const int n = 200;
const GLfloat R = 0.5f;
const GLfloat Pi = 3.1415926536f;
void myDisplay(void)
{
int i;
// 画一个绿色正方形
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0f,1.0f,0.0f);
glRectf(-0.5f, 0.4f, 0.0f, 0.9f); //画一个绿色的正方形
//glFlush();
//glClearColor(0.0,0.0,0.0,0.0);
//glClear(GL_COLOR_BUFFER_BIT);
glColor4f(1.0,0.0,0.0,1.0); // set the quad color
glBegin(GL_QUADS);
glVertex3f(-0.2,-0.2,0.0);
glVertex3f(0.2,-0.2,0.0);
glVertex3f(0.2,0.2,0.0);
glVertex3f(-0.2,0.2,0.0);
glEnd();
glColor4f(1.0,0.0,0.0,1.0); // set the point color
glPointSize(10);
glBegin(GL_POINTS);
glVertex3f(-0.5,-0.5,0.0);
glVertex3f(0.5,-0.5,0.0);
glVertex3f(0.5,0.5,0.0);
glVertex3f(-0.5,0.5,0.0);
glEnd();
glColor4f(1.0,0.0,0.0,1.0); // set the line color
glLineWidth(5);
glBegin(GL_LINES);
glVertex3f(-0.5,-0.5,0.0);
glVertex3f(0.5,-0.5,0.0);
glVertex3f(0.5,0.5,0.0);
glVertex3f(-0.5,0.5,0.0);
glEnd();
/*glBegin(GL_POLYGON);
for(i=0; i<n; ++i)
glVertex2f(R*cos(2*Pi/n*i), R*sin(2*Pi/n*i));
glEnd();*/
glFlush();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 0);
glutInitWindowSize(1024, 768);
glutCreateWindow("OpenGL基本绘制");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return 0;
}
二. OpenGL 机器人(用长方形构成的机器人)
代码分为以下部分:
头文件和变量,
DrawCube,在指定位置绘制一个立方体,
DrawArm,绘制机器人的一条手臂,
DrawHead,绘制机器人的头,
DrawTorso,绘制机器人的躯干,
DrawLeg,绘制机器人的一条腿,
DrawRobot,在位置xPos、yPos、zPos处绘制机器人,
Render,处理场景的绘制,
SetupPixelFormat,为设备环境设置像素格式,
WndProc,窗口过程
两个机器人: