为什么我的SVG bezier曲线在Firefox中被打破?

时间:2015-09-08 18:49:44

标签: javascript html5 firefox svg

我今天遇到了一个问题,我创建的图表在通过getPointAtLength创建时无法在Firefox中运行。这是一个显示问题的小提琴:

http://jsfiddle.net/xfpDA/9/

注意javascript顶部的注释。

SVG路径的相关部分是:

C189.5,423.237,266.965,390.696,266.965,390.696

这在Chrome和IE浏览器中完美运行,但Firefox会直接跳过曲线并关闭路径。

然而,曲线的微小变化足以解决问题:

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

为什么将该值改为千分之一会产生漂亮的曲线和破碎的SVG之间的差异?

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

1 个答案:

答案 0 :(得分:0)

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