在很多应用中,需要根据多根离散线,计算最小封闭区域或最大封闭区域。下面介绍一种计算思路。
1. 计算各线之间的交点,并用交点断开原线。
2. 转换各种线为边界线。
边界线的每个点为边界点,每个边界点可能对应多个相关点(即其他边界线上的边界点)。
3. 判断孤立线。
起点或终点无相关点的边界线, 为孤立线。查找封闭区域时,忽略孤立线。
4. 查找封闭区域。
以每条边界线的每两个边界点作为封闭区域的第一、二点,查找封闭区域的下一点。规定封闭区域为顺时针走向。根据区域上一点、区域当前点、相关点的下一点构成的夹角,判断区域的下一点。计算最小区域时,按夹角从小到大排序;计算最大区域时,按夹角从大到小排序。如果按某个相关点计算下去最终构成封闭区域,计算结束。否则取其他相关点继续计算。