簡體   English   中英

如何計算輪廓SVG的最小“線”寬度?

[英]How to calculate the minimum "line" width of an outlined SVG?

給定每個頂點(標記為藍點)和切線的所有x, y位置,我已經outlinedarea filled圖標,我試圖計算它們在 Javascript 中的"stroke-width" ,是否存在任何有效且准確的方法來計算最小"stroke-width" 不是火箭火焰尖端的最小交叉點,但在示例中應該是1.5px

在此處輸入圖片說明 我已經通過每第一比較試圖line segment與每個其它line segment和發現如果它們是parallel的,如果它們是parallel (相同的角度)我然后將它們存儲到array of all parallel lines ,然后我循環通過陣列找到每條線a到線bcenter point之間的shortest distance 但是,如果在數百個頂點上執行,這是非常耗時的,而且結果並不總是准確的,因為拱形形狀上兩個平行line segements之間的距離比實際短,並且無法保證是否有任何parallel line pairs處於完美的 90°

在此處輸入圖片說明

另一種方法可能是將其轉儲到畫布上,並計算填充像素。 然后更改為填充非零,再次將其轉儲到畫布並計算填充像素。 從另一個中減去一個,這將為您提供“描邊”區域中的像素數。 將其除以您的繪圖路徑的總長度(並針對 viewBox 單位進行調整)它不會准確,但它肯定看起來要快得多。

暫無
暫無

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

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