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