如果声明要通过数字行

时间:2015-05-21 08:07:44

标签: c++ if-statement

我正试图围绕一个中心点制作一个模型,我希望它来回摆动(这是一条腿)。我不确定我的条件。特别是当它试图减小角度时。我现在得到的,似乎:

  1. 增加角度直到> 46
  2. 进入最后一个if语句,从角度减去0.1,(使其<46)
  3. 现在不是继续进入最后一个if语句直到angle = 0,而是返回第二个if函数。
  4. 我希望它继续减少直到0,然后再次增加。 (请注意,整个代码块在调用时都处于for循环中。)

    P / s:CenterPointVec []是包含x,y和z轴值的向量。

    void vertex::AnimatePart()
    {
        static float angle = 0;
        bool goback = false;
    
             if(angle == 0)
    {
        glTranslatef(CenterPointVec[0], CenterPointVec[1], CenterPointVec[2]);
        glRotatef(angle, 1,0,0);
        glTranslatef(-CenterPointVec[0], -CenterPointVec[1], -CenterPointVec[2]);
    
        angle += 0.1;
        goback = false;
    }
    
    if(angle < 46 && goback == false)
    {
        glTranslatef(CenterPointVec[0], CenterPointVec[1], CenterPointVec[2]);
        glRotatef(angle, 1,0,0);
        glTranslatef(-CenterPointVec[0], -CenterPointVec[1], -CenterPointVec[2]);
    
        angle += 0.1;
    
        if(angle > 46)
        {
            goback = true;
            cout << "Angle : " << angle << endl;
            cout << "Go back? " << goback << endl;
        }
    
    }
    
    if(angle > 0 && goback == true)
    {
        glTranslatef(CenterPointVec[0], CenterPointVec[1], CenterPointVec[2]);
        glRotatef(angle, 1,0,0);
        glTranslatef(-CenterPointVec[0], -CenterPointVec[1], -CenterPointVec[2]);
    
        angle -= 0.1;
    
        if(angle <= 0)
            {
                goback = false;
                cout << "Angle : " << angle << endl;
            }
    }
    }
    

0 个答案:

没有答案