我不知道如何计算球碰到墙时的下一个方向。
示例球正在移动 X +5 和 Y +3,但在它接触到墙壁后,方向应该像现实生活中一样改变。 (像台球一样)
最佳答案
最简单的模拟机制是:如果您撞到侧壁,则将 x 速度乘以 -1
。如果您撞到顶墙或底墙,请将 y 速度乘以 -1
。
假设您的导轨是由平行于坐标系的 x 轴或 y 轴的线(即直线)组成的矩形,那么这将满足入射角 = 反射角约束。如果不是,那么您必须进行一些涉及角度的数学运算。
您可能还想考虑 impulse墙壁和friction在球和 table 表面之间计算球在碰撞后和随着时间的推移移动的速度。否则你的球不会停止移动。这两个(很可能)是一个简单的常数,它以相同的方式影响速度的 x 和 y 分量(即,将两者乘以相同的常数,例如摩擦系数为 0.99,等等)。这应该会给你一个相当准确的模拟,并进行一些调整。
关于java - 如何计算球的下一个方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27514243/