首先,假设有两条线段p,q,求这两条线段的空间关系。
我们把两条线段的四个顶点看为向量,用坐标表示:p1(p1x,p1y), p2(p2x,p2y), q1(q1x,q1y), q2(q2x, q2y)
则可以计算出两线段对应向量:
p = p2 - p1
q = q2 - q1
两条线段的交点处向量(绿色)可以表示为:
p1 + t * p = q1 + u * q
其中 ,当t , u ∈ [0 , 1] 时,两条线段有交点。因为如果有交点,图中红色的向量一定和线段方向一致,并且长度小于线段。
二维空间向量运算法则:
a + b = (ax , ay) + (bx , by) = (ax + bx , bx + by)
t * a = t * (ax , ay) = (t*ax , t*ay)
a × b = ax * by - ay * bx = |a| * |b| * sin<a,b