2014-01-19 45 views
0

我需要计算一个平面内射线和线段交点的事实以及射线起点到交点的距离,但是我很不了解计算几何,所以......怎么做?如何计算矢量形式的光线段相交?

+0

这个问题似乎是题外话,因为它是关于几何形状,而不是编程通过。 –

回答

0

段与端点A和B(所有向量)具有等式:

P(x) = A * x + B * (1 - x) 

其中0 < = X < = 1

射线与原籍R和定向(单位)向量U具有等式:

Q(y) = R + U * y 

其中y> = 0

你只需要解方程:

P(x) = Q(y) 

也就是说,找到参数x和y(如果存在的话),满足这个(矢量)方程。你将有两个标量方程和两个变量来计算。您可以很容易地解决这个线性系统,然后检查条件0 < = x < = 1且y> = 0。如果这两个条件都满足,您就得到了一个解决方案,否则就没有交集。 y值会给你从射线原点到交点的距离。

你也需要考虑很多退化情况,例如 - 射线通过在段终点等