#判断线段两端点是否在射线两侧 if (sy < py and ty >= py) or (sy >= py and ty < py): #线段上与射线 Y 坐标相同的点的 X 坐标 x = sx + (py - sy) * (tx - sx) / (ty - sy) #点在多边形的边上 if x == px: return (px,py) #射线穿过多边形的边界 if x > px: flag ...