D3.js:如何调整和弦路径?

D3.js:如何调整和弦路径?,d3.js,D3.js,这里的和弦以一种奇怪的方式相交。是否有需要调整的变量 和弦是怎么画的?我在文档和示例中看到的唯一变量似乎只指定了绘制弦的基本变量,例如从x角度到y角度。我也尝试过添加插值,类似于调整常规svg行的方式,但这不起作用 问题位于的第15行。通常,当线段之间的角度较小时,您要做的是使用更好的控制点。我不知道这是一个什么样的好猜测,但我知道代码会去哪里 第51-53行计算和弦的路径。(0,0)是一个“控制点”(请参阅)。当开始角和结束角彼此非常接近时,控制点倾向于将路径拉向图表中心(原点)太远。因此,为

这里的和弦以一种奇怪的方式相交。是否有需要调整的变量 和弦是怎么画的?我在文档和示例中看到的唯一变量似乎只指定了绘制弦的基本变量,例如从x角度到y角度。我也尝试过添加插值,类似于调整常规svg行的方式,但这不起作用


问题位于的第15行。通常,当线段之间的角度较小时,您要做的是使用更好的控制点。我不知道这是一个什么样的好猜测,但我知道代码会去哪里

第51-53行计算和弦的路径。(0,0)是一个“控制点”(请参阅)。当开始角和结束角彼此非常接近时,控制点倾向于将路径拉向图表中心(原点)太远。因此,为“0,0”计算一个更接近图表边缘的新值将有所帮助。可能你需要某种指数调整,这样它“只影响小角度”。使用类似于第38行和第39行的数学来找到合适的笛卡尔坐标


如果您创建了一个复制问题的小提琴,我会看看我能带来什么。

它看起来更像是一个bug,而不是一个配置选择。你有小提琴吗?@DwayneTowell认为我无法将这个独特的实例与更大的项目分开。圆圈的其余部分实际上是一个巨大的蓝色弦。顺便说一句,当添加更多节点时,图形看起来很好。只是这一个实例有问题。代码是你写的吗?你用什么几何设置控制点?@DwayneTowell我只是用D3的和弦布局函数和和弦路径函数。()它似乎不允许您指定自己的几何体。啊,谢谢!我会到处闲逛,看看能想出什么主意。也许定制选项也将添加到下一版本的d3中。