Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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 - Fatal编程技术网

Javascript SVG:获取弧段长度

Javascript SVG:获取弧段长度,javascript,svg,Javascript,Svg,我正在寻找在Node.js中计算path.getTotalLength()的方法,但似乎无法使用多边形填充。到目前为止,我设法计算了除A之外的所有其他PathCommand 例如,知道M段的最后一个X和Y,并且还具有所有A段值,如何确定此路径的长度 谢谢MDN提供了一些关于各种path命令的优秀文档 以下是如何分解提供的路径命令: M 8 15=移动到(绝对值) A 7 7 0 1 0 8 1=弧(绝对) 在给定states-path命令的情况下,我按照这个方法计算弧长。因为圆弧的x和y半

我正在寻找在Node.js中计算
path.getTotalLength()
的方法,但似乎无法使用多边形填充。到目前为止,我设法计算了除
A
之外的所有其他PathCommand

例如,知道
M
段的最后一个X和Y,并且还具有所有
A
段值,如何确定此路径的长度



谢谢

MDN提供了一些关于各种path命令的优秀文档

以下是如何分解提供的路径命令:

M 8 15
=移动到(绝对值)

A 7 7 0 1 0 8 1
=弧(绝对)

在给定states-path命令的情况下,我按照这个方法计算弧长。因为圆弧的x和y半径相等,所以这稍微容易一些

注意:如果它们不同,我不确定您需要做什么

常数x1=8,y1=15;
常数x2=8,y2=1;
常数r=7;//因为rx==ry,所以这更容易一些
常数d=Math.sqrt(Math.pow(x1-x2,2)+Math.pow(y1-y2,2));
常数θ=Math.acos(1-(Math.pow(d,2)/(2*Math.pow(r,2));
常数弧长=θ*r;
console.log(弧长);//弧长=21.9911


非常感谢您。你为什么说“/”,因为rx===ry,这就容易一点了“?基本上需要的是一种知道0-359.999度范围内任何圆弧长度的方法。因为有一个圆周长的数学公式,但没有一个椭圆周长的数学公式。虽然有很多近似值,但有些比其他的好:距离(rx,ry)->(x,y)是实际半径吗?用距离的平方根,你怎么计算呢?或者,如果该距离不同于(x1,y1)->(rx,ry),我们如何确定弧的长度?谢谢
x = 8
y = 15
rx = 7
ry = 7
x-axis-rotation = 0
large-arc-flag = 1
sweep-flag = 0
x = 8
y = 1