java - 如何计算球的下一个方向

标签 java android

我不知道如何计算球碰到墙时的下一个方向。

示例球正在移动 X +5 和 Y +3,但在它接触到墙壁后,方向应该像现实生活中一样改变。 (像台球一样)

http://i.stack.imgur.com/Y5AOZ.png

最佳答案

最简单的模拟机制是:如果您撞到侧壁,则将 x 速度乘以 -1。如果您撞到顶墙或底墙,请将 y 速度乘以 -1

假设您的导轨是由平行于坐标系的 x 轴或 y 轴的线(即直线)组成的矩形,那么这将满足入射角 = 反射角约束。如果不是,那么您必须进行一些涉及角度的数学运算。

您可能还想考虑 impulse墙壁和friction在球和 table 表面之间计算球在碰撞后和随着时间的推移移动的速度。否则你的球不会停止移动。这两个(很可能)是一个简单的常数,它以相同的方式影响速度的 x 和 y 分量(即,将两者乘以相同的常数,例如摩擦系数为 0.99,等等)。这应该会给你一个相当准确的模拟,并进行一些调整。

关于java - 如何计算球的下一个方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27514243/

相关文章:

php - 没有文件扩展名

android - 我如何从 Activity 中访问共享 View 模型?

android - 适用于 Android 的 Google+ 平台 - getCurrentPerson

java - PAM "pam_unix.so"身份验证有时会失败

java - 获取java中项目之外的图像文件的路径

java - 当请求超时时,http servlet 会发生什么?

Android 应用程序在版本 6 (Marshmallow) 上崩溃

Android:谁启动 Activity

java - 如何使用接口(interface)创建bean?

java - 配置多态对象集合以在 JAXB2 中工作