我目前正在開發一個應用程序,可以根據線條創建多邊形,並且遇到一個小問題:我有一組點,代表一條線。我想創建一個多邊形來顯示具有特定寬度的線條(例如,街道)。我有幾個想法如何計算外部多邊形點,但我認爲它們太複雜了...如何從一個簡單的線條計算特定寬度的多邊形點?
我最好的想法是下面的圖片:線條的每個點必須投影到至少兩個點:兩者點必須與後續線段成90°,並且具有優選多邊形寬度的一半距離。
這工作不錯,你可以看到底,並開始描繪多邊形的點。現在複雜的部分:用這種方法,在一個角落裏,每個點都得到四個點。但是這些點對於外部多邊形是不正確的,因爲它們處於形狀中。線條相交併創建了一個醜陋的多邊形。
如何才能找到這樣一個多邊形的正確點?我認爲我的方法對於解決這個問題太複雜了。
任何人都可以幫助我解決這個問題嗎?
信息:我用openstreetmap
標記了這個,因爲像Mapnik這樣的渲染器也有這個問題。
哇,謝謝你的回答!很高興看到您正在使用的程序的開發人員。你在Maperitive方面做得很好!你給我看的算法非常複雜......但我想我需要這個。我會仔細看看的! – guerda 2011-06-07 08:11:01