Douglas一Peukcer算法由D.Douglas和T.Peueker於1973年提出,簡稱D一P算法,是眼下公認的線狀要素化簡經典算法。現有的線化簡算法中,有相當一部分都是在該算法基礎上進行改進產生的。它的長處是具有平移和旋轉不變性,給定曲線與閡值后,抽樣結果一定。本章線化簡重點解說該算法。
算法的基本思路是:對每一條曲線的首末點虛連一條直線,求所有點與直線的距離,並找出最大距離值dmax ,用dmax與限差D相比:若dmax < D ,這條曲線上的中間點所有舍去;若dmax ≥D ,保留dmax 相應的坐標點,並以該點為界,把曲線分為兩部分,對這兩部分反復使用該方法。
算法的具體過程如下:
(1) 在曲線首尾兩點間虛連一條直線,求出其余各點到該直線的距離,如圖3(1)。
(2) 選其最大者與閾值相比較,若大於閾值,則離該直線距離最大的點保留,否則將直線兩端點間各點所有舍去,如圖3(2),第4點保留。
(3) 根據所保留的點,將已知曲線分成兩部分處理,反復第1、2步操作,迭代操作,即仍選距離最大者與閾值比較,依次取舍,直到無點可舍去,最后得到滿足給定精度限差的曲線點坐標,如圖3(3)、(4)依次保留第6點、第7點,舍去其它點,即完成線的化簡。