【发布时间】:2012-04-02 15:40:02
【问题描述】:
如果有人可以帮助计算 SVG 路径的面积,我将不胜感激。
我有一个功能可以得到非常好的总长度。
我见过一种将路径转换为多边形的 javascript 方法:
http://phrogz.net/SVG/convert_path_to_polygon.xhtml
将其转换为 c# 将是一个很好的途径,因为我有一个函数可以将多边形的面积获得足够的精度。
问候
如果对这里的问题有任何疑问......
如果您对 SVG 文件格式有所了解,您就会知道 SVG 路径的形状是由一组坐标定义的,如下所示:
d="M195.303,64.357 c6.57-6.684,11.9-15.514,10.057-25.154 c-3.689-19.298-27.854-13.204-27.309-0.549 c-0.545-12.655-23.619-18.749-27.309,0.549 c-1.844,9.651,3.502,18.401,10.082,25.087 c1.697-4.813,5.713-8.03,11.482-9.451 c-2.797,1.531-3.809,4.396-3.809,7.812 c0,4.983,4.58,8.4,9.553,8.4s9.553-3.417,9.553-8.4c0-3.416-1.012-6.28-3.807-7.812C189.584,56.263,193.613,59.52,195.303,64.357 z"
c 和 C 定义贝塞尔曲线
(会张贴图片)
我要问的是如何使用坐标/曲线点计算这种形状的面积。
使用 IronPython 和 Inkscape 函数的解决方案效果非常好。
【问题讨论】:
-
如果您已经有一个多边形例程,那么您可能只需要一个 XML 阅读器来获取点数据,然后将这些点输入到您的函数中。你有没有开始这样的例行公事?
-
我可以毫无问题地读取所有点,路径的点并不能真正直接转换为与多边形相同的格式,路径可以有各种类型的曲线等。
-
啊,请原谅 - 我刚刚看到“多边形”并错过了“路径”位!对,就像你一样
:) -
SVG 路径形状区域有什么不真实的地方?
-
这是一个 100% 真实的问题,并且 100% 可以回答。永远不应该被关闭。我自己无法回答,但有一个免费的 Adobe Illustrator 插件可以计算路径区域 (telegraphics.com.au/sw/product/patharea