要明白为什么你有这样的strange过渡,我们来比较一下d
使用路径的属性curveBasis
and a curveLinear
.
首先,一个curveBasis
:
d =“M0,101.2061594964L45.48756294826797,89.52282837400001C90.97512589653594,77.83949725160001,181.95025179307189,54.4728350 0680002,271.46268884480395,84.08731623460001C360.975125896536,113.70179746240001,449.0248741034641,196.2974221628,538.53731 11551961,222.09899531679994C628.0497482069281,247.90056847079998,719.0248741034642,216.90809007840002,764.512437051732,201。 4118508822 L810,185.915611686"
Now a curveLinear
(相同数据):
d =“M0,101.2061594964L272.92537768960784,31.10617276200003L537.0746223103922,278.89304686319997L810,185.915611686”
正如你所看到的,路径更简单curveLinear
。因此,奇怪的转变是预期的行为。
一种可能的解决方案是使用路径插值,如中提出的这段代码 https://bl.ocks.org/mbostock/3916621来自迈克·博斯托克。
这是带有路径插值的块:http://blockbuilder.org/anonymous/02125b1fb145a979e53f369c4976a772 http://blockbuilder.org/anonymous/02125b1fb145a979e53f369c4976a772
PS:如果您想在加载页面时避免出现奇怪的过渡(所有路径都来自左上角),请第一次使用常规绘制它们attr
method.