Bouncing Ball. Making it slow down at peak of height

后端 未结 1 1878
孤独总比滥情好
孤独总比滥情好 2020-12-02 02:57

I have created a bouncing ball animation in x3d. I am just curious how I could make the ball slow down at the peak of its height to make it look more realistic. Thank you in

相关标签:
1条回答
  • 2020-12-02 03:56

    Use 'real' physics for that.

    1. ball have parameters

      • acceleration a(ax,ay,az) [m/s^2]... this is sum of all forces driving ball divided by its mass
      • velocity v(vx,vy,vz) [m/s]... actual speed = integration of acceleration v += a * dt
      • position p(x,y,z) [m]... actual position = integration of velocity p += v * dt
      • radius r [m]
      • mass m [kg]
      • dt [s] ... iteration step (update time)

      init start a,v values to (0,0,0) and p to start position

    2. apply gravity, friction, collision

      • gravity for example g(gx=0,gy=-9.81,gz=0)
      • friction f2 = -(|v|^2)*c2 * (v/|v|) ... in gas
      • friction f3 = -(|v|^3)*c3 * (v/|v|) ... in liquid

      if position before and after cross collision border reflect velocity * collision coef <=1 by impact normal also you can reflect position if crossing border is not possible.

    3. put it all together in some timer / updating code with dt interval

      a =g+(f2+f3+(driving force))/m
      v+=a*dt
      p+=v*dt
      test_collisions()
      redraw()
      
    4. for manual change of position

      just set p(x,y,z) to new position and also can set v=(0,0,0) to stop the ball

    0 讨论(0)
提交回复
热议问题