Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.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
Javascript 获取从`<;路径>;`svg的信息_Javascript_Svg_Path_Area - Fatal编程技术网

Javascript 获取从`<;路径>;`svg的信息

Javascript 获取从`<;路径>;`svg的信息,javascript,svg,path,area,Javascript,Svg,Path,Area,让我们以这个简单的.svg为例: 对于该形状,我得到以下代码: <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1000px" height="1000px" viewBox="0 0 1000 1000" enable-background="ne

让我们以这个简单的.svg为例:

对于该形状,我得到以下代码:

   <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
         width="1000px" height="1000px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
    <path d="M1000,500c0,276.143-223.857,500-500,500c-276.143,0-57.729-467.521-313.389-571.889C-252.278,248.944,223.858,0,500,0
        C776.143,0,1000,223.857,1000,500z"/>
    </svg>

我有一种方法可以从.svg的
信息中得到面积的值吗?

<path d="M1000,500c0,276.143-223.857,500-500,500c-276.143,0-57.729-467.521-313.389-571.889C-252.278,248.944,223.858,0,500,0
        C776.143,0,1000,223.857,1000,500z"/>

您可以将路径转换为多边形,然后使用“多边形面积”算法

精度将取决于转换过程中使用的点数以及可能累积的任何浮点错误

我不知道它的精确度与像素计数法相比如何。但我希望它更准确

多边形(点)的函数计算 { 如果(点长度<3) 返回0; 变量面积=0,n=点长度;
对于(var i=0;i@RobertLongson这可能是个主意。你的头顶上有一个例子吗?好的,谢谢,我会挖掘这个方向。太好了!对于100乘100的圆,我得到这个结果=>7853.85021621853(应该得到7850).因此,这非常准确…我将尝试其他解决方案,但我非常乐意勾选您的答案..简单且高效=)。要调整精度,这一行我必须参数“var numSteps=Math.floor(pathLen*2);”?我看到它会改变多边形的数量,但不会改变最终结果…..是的,我根据路径长度计算步数。但您可能希望将其作为一个参数。或者以不同的方式计算步数。步数确实会产生差异,通常越大越好。但您选择的步数将是甚至速度和准确性。