2012-05-12 39 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是开源的,你甚至可以搜索它的源代码来找到这个模块并使用它。