【问题标题】:given 2 point and 2 direction how do I know if they intersect?给定 2 个点和 2 个方向,我怎么知道它们是否相交?
【发布时间】:2025-11-30 21:20:04
【问题描述】:

我正在用c#做一些碰撞测试,我有以下问题。

我有object1和object2,它们朝一个方向移动。

我只想在 object1 和 object2 以特定角度碰撞时激活效果

我拥有的数据

Vector2 object1Position
Vector2 object1Direction
float object1ColliderRadius

Vector2 object2Position
Vector2 object2Direction
float object2ColliderRadius

我已经做了一个测试,以了解 object1 是否与 object2 发生碰撞。

我想念的是碰撞角度,以便在我的代码中激活或不激活其他东西。按照这张图片。

【问题讨论】:

  • 如果您能提供minimal reproducible example,如果您到目前为止取得了进展,那就太棒了。
  • 对象的大小是多少?即使它们的轨迹是交叉的,物体也不需要碰撞

标签: c# math vector


【解决方案1】:

角度很容易计算,例如,dot product。更有趣的问题是,如果两者完全碰撞。当然,这取决于速度。通过添加一个额外的维度很容易处理它。你可以在这里输入z = t。使用 3D 仿射几何,您可以检查 3D 线是否相交。如果是,则具有 2D 轨迹的对象发生碰撞。这当然是针对点对象的,因此您必须详细检查线条的最近距离。

【讨论】:

  • 暂时假设匀速
最近更新 更多