Vector2交集
Vector2 intersection
我正在开发一款 2D 小游戏,我必须预测事物何时何地会发生碰撞。
所以,我有四个 Vector2 :
- 一个位置
- B位
- 线速度
- B线速度
我要找他们是否相交,相交的地方,从现在开始什么时候相交。
我找到了许多数学解决方案,但我无法将它们转化为代码。
您想计算
的最小值
norm((A+t*vA)-(B+t*vB))=norm((A-B)+t*(vA-vB))
对这些欧几里德范数求平方
norm((A-B)+t*(vA-vB))^2 = norm(A-B)^2 + 2*t*dot(A-B,vA-vB) + t^2*norm(vA-vB)^2
给你一个简单的二次函数 t
其中最小值为
min_dist =norm(A-B)^2 - dot(A-B,vA-vB)^2/norm(vA-vB)^2
当时
t = -dot(A-B,vA-vB)/norm(vA-vB)^2
我正在开发一款 2D 小游戏,我必须预测事物何时何地会发生碰撞。
所以,我有四个 Vector2 :
- 一个位置
- B位
- 线速度
- B线速度
我要找他们是否相交,相交的地方,从现在开始什么时候相交。
我找到了许多数学解决方案,但我无法将它们转化为代码。
您想计算
的最小值norm((A+t*vA)-(B+t*vB))=norm((A-B)+t*(vA-vB))
对这些欧几里德范数求平方
norm((A-B)+t*(vA-vB))^2 = norm(A-B)^2 + 2*t*dot(A-B,vA-vB) + t^2*norm(vA-vB)^2
给你一个简单的二次函数 t
其中最小值为
min_dist =norm(A-B)^2 - dot(A-B,vA-vB)^2/norm(vA-vB)^2
当时
t = -dot(A-B,vA-vB)/norm(vA-vB)^2