线段交点
求两线段交点
org.locationtech.jts.algorithm.Intersection
对任意相交折线段,AB ,CD ,求其交点T:

找交点所在的矩形范围
对于直线
l1=AB,l2=CD
找到其对应的矩形范围
l1∈D1,D2∈l2
得到
D=D1⋂D2
进一步得到D的中心点M,将M作为原点建立坐标系,平移各点后得到
Am,Bm,Cm,Dm
根据齐次坐标求交点坐标
高中的平面几何中,都在使用方程组的方法求解,相比之下,齐次坐标的形式更方便、简洁。
对齐次坐标有:
两点确定的直线为
l=P1×P2
两直线交点为
T=l1×l2
将坐标转换为齐次坐标有:
Am=(xa,ya,wa)
Bm=(xb,yb,wb)
取
wa=wb=1
则
l1=Am×Bm=(ya−yb,−(xa−xb),xa×yb−xb×ya)
同理得:
l2=Cm×Dm=(yc−yd,−(xc−xd),xc×yd−xd×yc)
有齐次坐标
T=(x,y,w)=l1×l2
最终有Target T 坐标
(X,Y)=(wx+xm,wy+ym)
Last updated