[英]rotation, translation in opengl through header file?
我有一个名为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;
您应该放置一些状态来表示其中一个类(可能是机器人)内部的转换。 您可以将方向表示为Euler角,矩阵或四元数,但是Euler角可能是最简单的起点。
然后,glutkeyBoardFunc函数应通过在封闭类中定义的成员函数(如RotateX(float amountInRadians))来修改此状态。 您的绘制函数应基于类中的状态。 这样,您就将数据传递到头文件中定义的类的实例中。
退一步,您应该搜索有关使用glut的基本教程,该教程将向您展示如何构建程序(例如, http : //nehe.gamedev.net/ )。 其中许多都是用C编写的(或很大程度上是过程性的),因此它们通常不会说明您所暗示的面向对象设计。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.