c# - 给定 2 个点和 2 个方向,我怎么知道它们是否相交?
问题描述
我在 C# 中做一些碰撞测试,我有以下问题。
我有object1和object2,它们朝一个方向移动。
仅当 object1 和 object2 以特定角度碰撞时,我才想激活效果
我拥有的数据
Vector2 object1Position
Vector2 object1Direction
float object1ColliderRadius
Vector2 object2Position
Vector2 object2Direction
float object2ColliderRadius
我已经进行了测试以了解 object1 是否与 object2 发生碰撞。
解决方案
角度很容易从例如点积中计算出来。更有趣的问题是,如果两者完全碰撞。当然,这取决于速度。通过添加一个额外的维度很容易处理它。在这里你会放z = t
. 使用 3D 仿射几何,您可以检查 3D 线是否相交。如果是,则具有 2D 轨迹的对象发生碰撞。这当然是针对点对象的,因此您必须详细检查线条的最近距离。
推荐阅读
- python - ValueError:无法将大小为 108900 的数组重塑为形状 (200,200,3)
- pytorch - 使用 "apex" 和 "nn.Embedding" 权重矩阵而不指定 float16 报告类型错误
- automation - Excel 自动化无处不在
- javascript - 在 Knockout 中通过 Observable 数组搜索的问题
- python - ImportError:无法从“lib”导入名称“trainer”
- javascript - 提示中的新行
- javascript - webpack 自定义加载器只选择一个文件而不是所有文件
- python-3.x - 如果在 python 版本 3 中使用 end="" 给出如下输入,我如何在同一行中打印非文本数据
- database - 当我尝试使用 Firebase 时,在 Swift5 中使用未解析的标识符“快照”
- android - Android(kotlin),如何获取资产文件路径?(在 pytorch 手机上)