【发布时间】:2018-01-25 21:39:50
【问题描述】:
我有一个游戏对象,它沿着 2D 平面上的路径移动,在 2 个点 (x1,y1) 和 (x2,y2) 之间。有时它会从路径上移开,需要放回原处。发生这种情况时,我会知道 x 坐标,但需要在给定 x 坐标的情况下计算沿路径的 y 坐标。
这是我的意思的说明:
【问题讨论】:
标签: unity3d math 2d computational-geometry
我有一个游戏对象,它沿着 2D 平面上的路径移动,在 2 个点 (x1,y1) 和 (x2,y2) 之间。有时它会从路径上移开,需要放回原处。发生这种情况时,我会知道 x 坐标,但需要在给定 x 坐标的情况下计算沿路径的 y 坐标。
这是我的意思的说明:
【问题讨论】:
标签: unity3d math 2d computational-geometry
你有一条线段,即给定端点的所有凸组合的集合。您想找到产生凸组合(x3,y3) 的系数,其中y3 是未知的。
t (x1,y1) + (1-t) (x2,y2) = (x3,y3)
由于x3是已知的,我们得到
t = (x3 - x2) / (x1 - x2)
因此,
y3 = ((x3-x2) y1 + (x1-x3) y2) / (x1 - x2)
【讨论】:
二维直线的一般方程是 a.x + b.y + c = 0 其中向量 U = (-b, a) 是直线的方向向量。
因为 (x1, y1) 和 (x2, y2) 在线,所以你知道:
所以你的线 ax + by + c = 0 的一个方程与:
知道a、b、c和x3,就可以轻松找到y3:
但请注意 b = 0 的情况(垂直线的情况)
【讨论】: