本文模拟了一个非常简单的机器人手臂程序,具体的细节可以参照《OpenGL 编程指南》(Dava Shreiner 著)。
此手臂分为两段,手臂在肩肘或其他关节处用节点进行连接。简单的模型如下图所示。
其中,
1)按下"s“键,肩膀长方体可以绕肩关节逆时针旋转
2)按下”S“键,肩膀长方体可以绕肩关节顺时针旋转
3)按下”e“键,手臂长方体可以绕肩关节逆时针旋转
4)按下”E“键,手臂长方体可以绕肩关节顺时针旋转
代码学习时,关键点在于怎样通过坐标变换,让相应的长方体围绕不同的点就行旋转
具体代码如下:
#include <GL/glut.h>
#include <stdlib.h>
static int shoulder = 0, elbow = 0;
void init(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_FLAT