線段的劃分,在纏論里花費了不少筆墨,內容最后講得也算清晰。將向上筆和向下筆分別構成的特征向量序列,就可以通過尋找特征向量序列里的頂分型和底分型,找到線段的分界點。
實際程序化實現時,在線段劃分的處理邏輯上,有這么幾個步驟(以從向上一筆開始尋找向上線段的終點為例):
(1)找到初始筆,該筆為向上一筆;
(2)從初始筆的起點A出發(fā),尋找特征向量序列X中的頂分型;
(3)如果找到特征向量序列X中的頂分型,并且其頂部位置低于初始筆的起點A,則將初始筆之后出現的最高一筆的終點,作為該向上線段的終點B;然后以B點出發(fā)的第一筆(向下筆)作為初始筆,啟動尋找向下線段終點的過程。這種情況極其少,只出現在第一筆向上,第二筆直接下穿第一筆低點,并且其后一直運行在第一筆之下的情況。
(4)如果找到特征向量序列X中的頂分型,并且其頂部位置高于第一筆起點A,則進一步檢查此特征向量序列X中的頂分型是否存在跳空缺口:
1)如果沒有跳空缺口,則特征向量序列X中的頂分型位置B點,即為線段分界點。然后以B點出發(fā)的第一筆(向下筆)作為初始筆,啟動尋找向下線段終點的過程;
2)如果有跳空缺口,則以特征向量序列X中的頂分型位置B點,不能確認為線段分界點,還需要以B點出發(fā)的第一筆(向下筆)作為初始筆,繼續(xù)尋找特征向量序列S中的底分型;
3)如果在某一筆向上超過B點之前,找到特征向量序列S中的底分型,則線段分界點B成立。
4)如果在某一筆向上超過B點之前,沒有找到特征向量序列S中的底分型,則線段分界點B不能成立。那么,就需要繼續(xù)以向上超越B點的那一筆為初始筆,尋找特征向量序列X中的頂分型。
(5)如果沒有找到特征向量序列X中的頂分型,則意味著向上線段一直沒有結束,以其中最高一筆的終點,暫時作為向上線段的終點。
圖二

圖三

圖四

圖五
|