![](https://csdnimg.cn/release/download_crawler_static/88047631/bg4.jpg)
函数里面写:
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
其中 GLUT_SINGLE 表示单缓冲,如果改成 GLUT_DOUBLE 就是双缓冲
了。每次绘制完成时,我们需要交换两个缓冲区,把绘制好的信息用于屏幕显示。
如果使用 GLUT 工具包,也可以很轻松的完成这一工作,只要在绘制完成时简
单的调用 glutSwapBuffers 函数就可以了。
3 仿真机器人三维建模
用 OpenGL 进行三维建模主要有两种方法:一个是用 3DMax 绘制出仿人机
器人并将其转换成 3DS 格式文件,然后导入到程序中;另一个是直接用 OpenGL
的绘制函数绘制出仿人机器人。第一种方法是利用辅助库提供了一些基本的窗口
管理函数,能够完成 OpenGL 与窗口系统的集成。用辅助库来进行开发,用户在
编程时不必关心窗口系统的具体细节,就能够轻松开发出具有良好跨平台移植能
力的 OpenGL 程序。利用 OpenGL 所提供的窗口系统的功能,采用这种方法能够
充分利用窗口系统的功能,加入各种控件,开发出用户界面友好的程序。本文采
用第二种方法,在 Visual C++环境下利用 OpenGL 实现对仿真机器人的三维建模
和运动仿真,只需要调用 OpenGL 的辅助函数库 Glut,图形界面由 Visual C++完
成。在辅助函数库 Glut 中提供了一些三维形体绘制函数,能够完成对如球、立
方体、多面体等简单形体的绘制,利用简单形体组成机器人的三维建模。
1)首先建立三维物体的顶点类。程序如下:
class CMeshVertex
{
public:
float position[3];
float normal[3];
void SetPosition(float x, float y, float z)
{position[0]=x; position[1]=y; position[2]=z;}
void SetNormal(float x, float y, float z)
{normal[0]=x; normal[1]=y; normal[2]=z;}
};
2)通过顶点的位置坐标及设置法线向量,以便之后对其进行渲染。然后建
立简单形体的类,本文用圆柱体仿真机器人的双腿,用球体仿真关节部位。圆柱
体和球体的规则类程序如下: