球与天花板的碰撞时间

Ball collision time with ceiling

我知道要做与地面的碰撞时间。 这是我的计算方法:gravityY = positive 9.81

float timeToGround = (velocity.y + Sqrt(velocity.y*velocity.y + 2f * gravityY * distanceToGround)) / gravityY;

如何根据距离和初始速度计算 roof/ceiling 的碰撞时间?

float timeToRoof = ?

我不知道去哪里找,非常感谢你的帮助

你需要求解未知时间t的二次方程

h = y0 + Vy * t  - g*t^2 / 2
or 
 g*t^2/2 - Vy*t + (h-y0) = 0  // a,b,c coefficient grouped

已知起点高度 y0,屋顶高度 h,重力 g,初始速度的 y 分量 Vy

呵呵,谢谢你的帮助。 答案如下:

float timeToRoof = (-velocity.y + Sqrt(velocity.y * velocity.y + 2f * gravity.y * distanceToRoof)) / gravity.y;
  • gravity.y = 负 -9.81
  • velocity.y = 当前速度
  • distanceToRoof = 当前到屋顶的距离