我正在開發.NET項目。我需要計算SVG文件中的形狀長度和麪積。使用變換計算SVG形狀的長度和麪積
有兩個難點:
一)Bezier曲線 - 這似乎公式是不平凡的
和
二)轉變 - 在做計算之前,我必須申請全部轉換
任何人都可以推薦一個在SVG文件上做幾何計算的庫嗎? 任何人都可以推薦一個代碼將變換應用到SVG文件並返回每個形狀中每個點的原始值?
我正在開發.NET項目。我需要計算SVG文件中的形狀長度和麪積。使用變換計算SVG形狀的長度和麪積
有兩個難點:
一)Bezier曲線 - 這似乎公式是不平凡的
和
二)轉變 - 在做計算之前,我必須申請全部轉換
任何人都可以推薦一個在SVG文件上做幾何計算的庫嗎? 任何人都可以推薦一個代碼將變換應用到SVG文件並返回每個形狀中每個點的原始值?
對於貝塞爾曲線,您可以通過將曲線轉換爲線段來計算長度。您可以使用DeCastelJau提供的算法。 algorithm is like
如果您打開並保存在網上的SVG編輯器中的文件 - 「SVG-編輯」,它本身將刪除任何轉換(和會給你所需的每個點的原始值)
此外,由於SVG-Edit是開源的,你甚至可以搜索它的源代碼來找到這個模塊並使用它。
我以爲SVG本來就有path.GetTotalLength()計算長度,不是嗎? http://msdn.microsoft.com/en-us/library/ie/ff972191(v=vs.85).aspx –
是的,SVG有自己的方法來計算曲線的長度,但它使用了DeCastleJau的基本算法 – radhe001