2012-05-12 40 views
3

我正在開發.NET項目。我需要計算SVG文件中的形狀長度和麪積。使用變換計算SVG形狀的長度和麪積

有兩個難點:

一)Bezier曲線 - 這似乎公式是不平凡的

二)轉變 - 在做計算之前,我必須申請全部轉換

任何人都可以推薦一個在SVG文件上做幾何計算的庫嗎? 任何人都可以推薦一個代碼將變換應用到SVG文件並返回每個形狀中每個點的原始值?

回答

1

對於貝塞爾曲線,您可以通過將曲線轉換爲線段來計算長度。您可以使用DeCastelJau提供的算法。 algorithm is like

+1

我以爲SVG本來就有path.GetTotalLength()計算長度,不是嗎? http://msdn.microsoft.com/en-us/library/ie/ff972191(v=vs.85).aspx –

+0

是的,SVG有自己的方法來計算曲線的長度,但它使用了DeCastleJau的基本算法 – radhe001

0

如果您打開並保存在網上的SVG編輯器中的文件 - 「SVG-編輯」,它本身將刪除任何轉換(和會給你所需的每個點的原始值)

此外,由於SVG-Edit是開源的,你甚至可以搜索它的源代碼來找到這個模塊並使用它。