繁体   English   中英

旋转,通过头文件在opengl中翻译?

[英]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的主程序中,我想实现这些目标,

  • 我可以将争论从主程序传递到头文件吗? 因为我使用了glutkeyBoardFunc(),所以我需要我的机械臂根据键进行平移和旋转,如下所示:
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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM