需求:选择图中所有线条,求所有不重合的闭合区域(根据本人研究,该功能,AutoCAD并未完美实现)
解决方案:
第一步:求解图中所有Line和Pline的交点及端点(记为arPoint),并按照交点将长线段离散为小线段(记为arLine);
第二步:根据arLine和arPoint,求出所有点位引出的向量(记为arVector);
第三步:剔除所有孤立点,即只有引出向量数组为大小为1的点位;
第四步:遍历(对每一个点位引出的方向按照顺时针,方向角最大为原则),可以计算所有有可能的闭合区域arRegion;
第五步:对所有arRegion进行处理,即处理重线问题;
第六步:数据检查,去重,剔除arRegion中具有包含关系的闭合区域;
第七部:对每一个区域进行图案填充;
实现效果: