匀速运动

 

1、匀速运动

定义:

float x,y,vx;

 

初始化:

x = -5.0;

       y = 0.5;

       vx = 0.01;

 

更新:

x += vx;

       if(x > 8.0 || x<-8.0)

              vx = -vx;

绘制:

void Example::DrawSphere(float x,float y)

{

       glPushMatrix();

       glColor3f(1,1,0);

       glTranslatef(x,y,-5.0f);

       glutSolidSphere(1,20,20);

       glPopMatrix();

}

 

2、加速运动

定义:

float x,y; /**< 小球的位置*/

    float vx,vy; /**< 速度*/

    float gy;    /** Y轴加速度*/

初始化:

x = -5.0;

    y = 5.0;

    vx = 0.005;

    vy = 0.0;

    gy = 0.0001;

更新:

x += vx;

    vy += gy;

    y -= vy;

    if( y<0.4)      vy = -vy;

    if(x > 10.0 || x<-10.0)     vx = -vx;

 

3、受阻加速运动

定义:

floatx,y;      /**< 小球的位置 */

       floatvx,vy;  /**< 速度 */

       floatgy;         /** Y轴加速度 */

       floatfx,fy;      /**< 摩擦力产生的加速度 */

 

初始化:

x =-5.0;

       y= 5.0;

       vx= 0.004;

       vy= 0.0;

       gy= 0.0001;

 

       fx= -0.00001;

       fy= -0.004;

更新:

x +=vx;

       vy+= gy;

       y-= vy;

       /**小球落地时*/

       if(y <= 0.4)

       {

              y= 0.4;                       

/**改变X速度分量 */

              vx+= fx;       

              if(vx< 0)

                     vx= 0.0;

              /**改变Y速度分量 */

              vy+= fy;

              if(vy< 0)

                     vy= 0.0;

              vy= -vy;

       }

 

 


你可能感兴趣的:(匀速运动)