/// <summary> /// 进行矩形划分出任意多个矩形元素 /// </summary> /// <param name="lines"></param> /// <returns></returns> public List <List <Line2D> > Division(List <Line2D> lines) { if (lines != null && lines.Count > 4) { //首先要把所有的线打断 List <Line2D> decomposesLines = GraphicAlgorithm.Decompose(lines); //查找最大的封闭区域,且不需要打断 List <List <Line2D> > large = GraphicAlgorithm.ClosedLookup(decomposesLines, true, false); if (large != null && large.Count > 0) { //获取所有外部的线段 List <Line2D> outerSide = large.FirstOrDefault(); //获取所有无端点的线段 List <Line2D> weeds = GraphicAlgorithm.WeedLess(decomposesLines); //获取内部线段,要去掉 //List<Line2D> innerSide = GraphicAlgorithm.RejectLines(decomposesLines,); } } return(null); }