我试图找出一种方法来确定在 2D 环境中与另一个物体碰撞的物体的相对速度。
例如,如果一个物体在 (1,0) 处移动,而另一个在它后面行进的物体在 (2,0) 处从后面与它碰撞,则相对于第一个物体的撞击速度为 (1,0)。
我需要一种采用两种速度的方法,一种速度属于正在测量速度的物体,另一种速度用于撞击物体并返回相对速度。
诶?当然,这应该只是向量 1 的分量 1 - 向量 2 的分量 1 和向量 1 的分量 2 - 向量 2 的分量 2?写一个方法
vector v3 = new vector(v1.x-v2.x, v1.y-v2.y);
事实上,Vector2 结构有一个产生这个结果的减法方法:vector2 减法
我不知道 C# 中已有什么,但您将从拥有包含物理的向量库中受益。简单的向量库将确定相对速度,但如果您正在做物理学(例如粒子弹跳),您可能需要考虑粒子的质量并保持动量(例如,当两个相等的质量具有速度 (1,2) 和 ( -1,3) 相互碰撞。在这种情况下,您将需要一个类来模拟每个粒子的质量、位置和速度。(例如,这是在模拟由原子组成的材料时所做的)