gpt4 book ai didi

java - 如何修复碰撞响应中的圆圈重叠?

转载 作者:行者123 更新时间:2023-11-29 05:38:15 25 4
gpt4 key购买 nike

由于在数字世界中几乎不会发生真正的碰撞,因此我们总会遇到“碰撞”球重叠的情况。

如何让回球完美碰撞而不重叠?

我会用 a posteriori 解决这个问题方法(二维)。

简而言之,我必须为 t 求解这个方程:

((x2 - t * v.x2) - (x1 - t * v.x1))^2 + ((y2 - t * v.y2) - (y1 - t * v.y1))^2 = (r1 + r2)^2

地点:

  • > t是一个回答问题的数字:多少帧之前碰撞是否完美发生?
  • > (x1, y1)是第一个球的中心
  • > (x2, y2)是第二个球的中心
  • > (v.x1, v.y1)(v.x2, v.y2)是它们的速度。

但是the solution来自 WolframAlpha 的太复杂了(我更改了速度的名称但基本上没有改变任何东西)。

最佳答案

它看起来很复杂,因为它是完整的解决方案,而不仅仅是它的简化多项式形式。将所有内容相乘并收集常数、t 和 t^2 项,您会发现它正好变成 at^2 + bt + c = 0。从那里您可以使用二次公式。

此外,如果您想使事情简单化,请使用 vector 数学来完成。这里没有理由将 x 和 y 坐标分开; vector 加法和点积就是您所需要的。

最后,重要的是相对位置和相对速度。假设一个圆在原点并且静止不动,并将差异应用于另一个球。这不会改变答案,但它确实减少了您争论的变量数量。

关于java - 如何修复碰撞响应中的圆圈重叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18683179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com