2010-02-15 226 views
0

我有一個名爲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,我想要實現這些東西, *可我通過從主程序arguements以頭文件?因爲我使用的是glutkeyBoardFunc(),所以我需要我的機器人手臂翻譯和基於鍵旋轉,這樣


case 'a': 
        to_arm = 0, fro_arm = 0; 
        glutTimerFunc(100, myTimerFunc, 3); 
        break; 
  • 我如何通過參數頭文件,因爲全部重新顯示從控制頭文件。
+0

這可能被標記爲「家庭作業」 – Manuel

回答

1

你應該放一些狀態來表示其中一個類(可能是機器人)內的轉換。您可以將方向表示爲歐拉角,矩陣或四元數,但歐拉角可能是最簡單的方法。

glutkeyBoardFunc函數應該通過封閉類上定義的成員函數修改這個狀態,比如RotateX(float amountInRadians)。你的繪圖函數應該基於類中的狀態。這樣,您就可以將數據傳遞到頭文件中定義的類的實例中。退一步說,你應該搜索關於使用glut的基本教程,它會告訴你如何構建你的程序(例如http://nehe.gamedev.net/)。其中許多是用C語言編寫的(或主要是程序性的),所以它們通常不會說明您暗示的面向對象設計。

+0

我正在使用C++來實現這一點,所以根據你的做法,在類的頭文件中,我需要定義自定義函數,然後通過對象傳遞。 我會盡力回來,謝謝... –