最接近数学/物理头的方法问题

时间:2010-04-02 20:08:06

标签: math physics

我正在使用Segment to Segment最接近的方法,它将输出两段长度之间的最近距离。每个段对应于球体对象的起点和终点。速度只是从一个点到另一个点。

即使没有真正的碰撞,最近的方法也能成功。所以,我现在正在使用一个10步法,计算2个球体沿两个部分移动时的距离。因此,基本上每个段的长度是物理步骤中对象的遍历,半径是对象半径。通过踩踏,我可以知道它们碰撞的位置,以及它们是否发生碰撞(排序;对于MOST部分。)..

我觉得可能有更好的东西。虽然我有点认为需要第一个最近的接近调用,但我认为紧随其后的方法是TAD弱点。谁能帮我吗?如果需要,我可以说明这一点。

非常感谢! alt text http://img444.yfrog.com/img444/6692/caquestion.png

2 个答案:

答案 0 :(得分:3)

如果位置函数是可逆的和明确的,则可以在不模拟时间的情况下完成最近的方法。

  1. 选择路径和对象。
  2. 找到两条路径最接近的路径上的点。如果时间有界限(例如路径是线段),则忽略此步骤中的边界。
  3. 查找对象在上一步中的点的时间。
  4. 如果时间有界限,请按界限限制选择的时间。
  5. 计算上一步中其他对象的位置。
  6. 检查对象是否重叠。
  7. 这不适用于所有路径(例如某些立方体),但应适用于线性路径。

答案 1 :(得分:3)

(我不知道如何发布图片;请耐心等待。)

好吧,我们有两个半径为r1和r2的球体,从位置X1和X2开始,以速度V1和V2移动(X和V是矢量)。

从球体2看球体1的速度是

V = V1-V2

及其方向是

v = V/|V|

距离球1必须行进(在球体2的框架内)到最接近的距离

s = Xv

如果X是初始分离,那么最接近的距离是

h = |X - Xv|

这是图形有用的地方。如果h> r1 + r2,不会发生碰撞。假设h< R1 + R2。在碰撞时,两个球体中心和最接近的点将形成直角三角形。从球体1的中心到最接近点的距离是

u = sqrt((r1 + r2)^2 - h^2)

所以距离球1已经行进了

s - u

现在看看球体1是否在给定的时间间隔内移动了那么远。如果是这样,那么你就知道球体的确切位置和位置(你必须从球体2的框架向后移动,但这很容易)。如果没有,就没有碰撞。