[英]How to draw the area around a shape
我為 java 的游戲開發了一個非常簡單的 map 編輯器階段。目標是在 map 上放置一些不同形狀的島嶼。但是有一些限制:
在游戲中,島嶼是用鼠標放置的。 玩家可以看到可以放置或不放置島嶼的區域,如您所見。
我的問題是我意識到我的禁止區域不好。 例如,矩形島有一個矩形禁止區域(我的第一次幼稚嘗試)但實際上我必須在矩形周圍繪制 S 區域; 導致這樣的形狀:
只要我的形狀只是由線條組成,我就能畫出這些區域。 但是我的島可以有三次曲線或二次曲線(盡管以后我會需要這種區域用於其他形狀)。 我設法做的越接近是:
在這種情況下,圓周圍的不允許區域必須是......一個圓(簡單幾何)。 但正如您所見,我有一個奇怪的圓角矩形。
我目前嘗試轉換 Shape 的 pathiterator 的每個部分以獲得該區域。 它不像縮放形狀那么簡單(記住矩形的情況)。 我已經嘗試了很多方法來變換形狀並獲得面積。
問題:
有人有信息、公式、線索、算法、庫來從任何 java.awt.Shape(或 PathIterator)和距離獲得這個區域嗎?
這個站點描述了如何使用 stroke 來獲取偏移區域。
只需進行一次修改即可解決我的問題; 我必須使用BasicStroke.JOIN_ROUND
來獲得良好的矩形形狀。
然后我得到:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.