Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用变换计算SVG形状的长度和面积_Svg - Fatal编程技术网

使用变换计算SVG形状的长度和面积

使用变换计算SVG形状的长度和面积,svg,Svg,我正在从事.NET项目。我需要计算SVG文件中形状的长度和面积 有两个困难: a) 贝塞尔曲线-似乎公式并不简单 及 b) 变换-在进行计算之前,我必须应用所有变换 有人能推荐一个对SVG文件进行几何计算的库吗? 有谁能推荐一种代码,将转换应用于SVG文件并返回每个形状中每个点的原始值吗?对于贝塞尔曲线,您可以通过将曲线转换为线段来计算长度。您可以使用DeCastelJau给出的算法。 如果您在在线SVG编辑器-“SVG编辑”中打开并保存文件,它本身将删除任何转换(并为您提供所需的每个点的原始值

我正在从事.NET项目。我需要计算SVG文件中形状的长度和面积

有两个困难:

a) 贝塞尔曲线-似乎公式并不简单

b) 变换-在进行计算之前,我必须应用所有变换

有人能推荐一个对SVG文件进行几何计算的库吗?
有谁能推荐一种代码,将转换应用于SVG文件并返回每个形状中每个点的原始值吗?

对于贝塞尔曲线,您可以通过将曲线转换为线段来计算长度。您可以使用DeCastelJau给出的算法。

如果您在在线SVG编辑器-“SVG编辑”中打开并保存文件,它本身将删除任何转换(并为您提供所需的每个点的原始值)


另外,由于SVG Edit是开源的,您甚至可以搜索它的源代码来找到执行该操作的模块并使用它。

我认为SVG本机具有路径。GetTotalLength()可以计算长度,不是吗?是的,SVG有它自己的计算曲线长度的方法,但它使用DeCastleJau的基本算法