簡體   English   中英

幾條線段的最小跡線的高效算法

[英]Efficient algorithm for minimum trace of several line segments

生成一組線段的最有效算法是什么,這些線段代表一組線段中的最小值(見圖)?

生成的線段應具有以下屬性:

  1. 不要重疊
  2. 每個段必須在原始集合的一個段內
  3. 原始集合的任何部分上的任何點都不能落在它下面

在此處輸入圖像描述

似乎是掃描線算法的一個很好的候選者。

創建一個段端點列表,並用開始/結束標志以及對段的引用來標記它們。 通過增加橫坐標對列表進行排序。

現在從左到右掃描列表,同時維護一個活動的段列表。 任何“開始”點都會在列表中創建一個段條目,“結束”點會丟棄它。 在任何時候,活動列表都將包含在先前和當前“事件”點之間重疊配置的段的子集。

通過插值,評估這些端點的坐標並垂直排序。 這使您可以

  • 檢測交叉點(對應於垂直列表中的重新排序),
  • 找到最低的縱坐標。

最后,您必須從左到右對交叉點進行排序,最后您將獲得一個不相交且在垂直方向上按總順序排列的子段列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM