// 检查两线段相交情况,将交点加入相应线段交点数组 static bool CheckCross(LineSegment s1, LineSegment s2) { var crosser = LineSegment.CheckCross(s1, s2); if (crosser == null) { return(false); } double r1 = crosser.Item1, r2 = crosser.Item2; if (r1 < 0 || r2 < 0 || r1 > 1 || r2 > 1) { return(false); } // 写入对应位置 if (r1 < 1) { if (!segSplit.ContainsKey(s1)) { segSplit[s1] = new SortedSet <double>(); } segSplit[s1].Add(r1); } if (r2 < 1) { if (!segSplit.ContainsKey(s2)) { segSplit[s2] = new SortedSet <double>(); } segSplit[s2].Add(r2); } return(true); }