[英]How to calculate the minimum "line" width of an outlined SVG?
給定每個頂點(標記為藍點)和切線的所有x, y
位置,我已經outlined
或area filled
圖標,我試圖計算它們在 Javascript 中的"stroke-width"
,是否存在任何有效且准確的方法來計算最小"stroke-width"
? 不是火箭火焰尖端的最小交叉點,但在示例中應該是1.5px
。
我已經通過每第一比較試圖
line segment
與每個其它line segment
和發現如果它們是parallel
的,如果它們是parallel
(相同的角度)我然后將它們存儲到array of all parallel lines
,然后我循環通過陣列找到每條線a
到線b
的center point
之間的shortest distance
。 但是,如果在數百個頂點上執行,這是非常耗時的,而且結果並不總是准確的,因為拱形形狀上兩個平行line segements
之間的距離比實際短,並且無法保證是否有任何parallel line pairs
處於完美的 90°
另一種方法可能是將其轉儲到畫布上,並計算填充像素。 然后更改為填充非零,再次將其轉儲到畫布並計算填充像素。 從另一個中減去一個,這將為您提供“描邊”區域中的像素數。 將其除以您的繪圖路徑的總長度(並針對 viewBox 單位進行調整)它不會准確,但它肯定看起來要快得多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.