线段的划分,在缠论里花费了不少笔墨,内容最后讲得也算清晰。将向上笔和向下笔分别构成的特征向量序列,就可以通过寻找特征向量序列里的顶分型和底分型,找到线段的分界点。
实际程序化实现时,在线段划分的处理逻辑上,有这么几个步骤(以从向上一笔开始寻找向上线段的终点为例):
(1)找到初始笔,该笔为向上一笔;
(2)从初始笔的起点A出发,寻找特征向量序列X中的顶分型;
(3)如果找到特征向量序列X中的顶分型,并且其顶部位置低于初始笔的起点A,则将初始笔之后出现的最高一笔的终点,作为该向上线段的终点B;然后以B点出发的第一笔(向下笔)作为初始笔,启动寻找向下线段终点的过程。这种情况极其少,只出现在第一笔向上,第二笔直接下穿第一笔低点,并且其后一直运行在第一笔之下的情况。
(4)如果找到特征向量序列X中的顶分型,并且其顶部位置高于第一笔起点A,则进一步检查此特征向量序列X中的顶分型是否存在跳空缺口:
1)如果没有跳空缺口,则特征向量序列X中的顶分型位置B点,即为线段分界点。然后以B点出发的第一笔(向下笔)作为初始笔,启动寻找向下线段终点的过程;
2)如果有跳空缺口,则以特征向量序列X中的顶分型位置B点,不能确认为线段分界点,还需要以B点出发的第一笔(向下笔)作为初始笔,继续寻找特征向量序列S中的底分型;
3)如果在某一笔向上超过B点之前,找到特征向量序列S中的底分型,则线段分界点B成立。
4)如果在某一笔向上超过B点之前,没有找到特征向量序列S中的底分型,则线段分界点B不能成立。那么,就需要继续以向上超越B点的那一笔为初始笔,寻找特征向量序列X中的顶分型。
(5)如果没有找到特征向量序列X中的顶分型,则意味着向上线段一直没有结束,以其中最高一笔的终点,暂时作为向上线段的终点。