Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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贝塞尔曲线在Firefox中被破坏?_Javascript_Html_Firefox_Svg - Fatal编程技术网

Javascript 为什么我的SVG贝塞尔曲线在Firefox中被破坏?

Javascript 为什么我的SVG贝塞尔曲线在Firefox中被破坏?,javascript,html,firefox,svg,Javascript,Html,Firefox,Svg,今天我遇到了一个问题,当通过getPointAtLength创建图表时,我创建的图表在Firefox中不起作用。下面是一把小提琴,它显示了这个问题: C189.5,423.236,266.965,390.696,266.965,390.696 ^ 注意javascript顶部的注释 SVG路径的相关部分是: C189.5,423.237,266.965,390.696,266.965,390.696 C189.5423.237266.965390.696266.965

今天我遇到了一个问题,当通过
getPointAtLength
创建图表时,我创建的图表在Firefox中不起作用。下面是一把小提琴,它显示了这个问题:

C189.5,423.236,266.965,390.696,266.965,390.696 ^

注意javascript顶部的注释

SVG路径的相关部分是:

C189.5,423.237,266.965,390.696,266.965,390.696 C189.5423.237266.965390.696266.965390.696 这在Chrome和IE中非常有效,但是Firefox跳过了这条曲线,只是关闭了路径

但是,曲线的微小变化足以解决问题:

C189.5,423.236,266.965,390.696,266.965,390.696 ^ C189.5423.236266.965390.696266.965390.696 ^ 为什么将该值更改千分之一会导致漂亮曲线和破损SVG之间的差异


编辑:该坐标不是唯一可以更改以“修复”问题的坐标,因此Firefox似乎无法很好地处理高精度曲线值。

Firefox在某些情况下(例如,delta=0/0)无法计算曲线的长度。因此,该路径部分的结果为NaN/0/undefined,因此不会添加到总长度中,getPointAtLength的域更小。

这很奇怪。我观察到423.2369842529297和423.237014770507之间的任何值都会触发该行为,如果这能给出任何原因的线索的话。此外,我应该在主要帖子中包括这一点,你也可以更改一些其他坐标来“修复”该问题。太好了。由于
getTotalLength
返回
NaN
,我已经看到我的图表的一些其他部分完全消失了。我发现了一个与该问题()相关的bug报告,但找不到关于该特定问题的bug报告。