我有一个名为base.h的头文件,它有所有初始显示和类似的东西, 我的主要目标是模拟具有自由度的机器人。
class center_rods
{
public:
center_rods()
{
}
void draw_center_rod()
{
glPushMatrix();
glTranslatef(0,1,0);
glRotatef(90.0,1.0,0.0,0.0);
glScalef(0.3,5,0.3);
glColor3f(0,0,1);
glutSolidCube(1.0);
glPopMatrix();
}
/* design and implementation of clamp holder of center rod, needs to be done */
};
class base_of_robot: public base1
{
public:
base_of_robot()
{
}
在名为robo.cpp的主程序中,我想实现这些目标,
case 'a':
to_arm = 0, fro_arm = 0;
glutTimerFunc(100, myTimerFunc, 3);
break;
答案 0 :(得分:1)
你应该放置一些状态来表示其中一个类(可能是机器人)内的转换。您可以将方向表示为欧拉角,矩阵或四元数,但欧拉角可能是最简单的开始。
然后,glutkeyBoardFunc函数应该通过在封闭类上定义的成员函数来修改此状态,例如RotateX(float amountInRadians)。您的绘图函数应该基于类中的状态。这样,您将数据传递到头文件中定义的类的实例。
退一步后,您应该搜索有关使用过剩的基本教程,该教程将向您展示如何构建您的程序(例如http://nehe.gamedev.net/)。其中许多是用C语言编写的(或者主要是程序性的),因此它们通常不会说明您所暗示的面向对象设计。