如何在sigma.js中对边缘应用两种不同的类型

rva*_*oni 6 javascript graph sigma.js

我想在sigma.js图形绘制边缘DOTTED和弯.我正在使用customEdgeShapes和curve插件,但我无法在同一个边缘组合两种不同的样式.实际上我只能将一种样式应用于该type属性:

edge.type = 'curvedArrow';
Run Code Online (Sandbox Code Playgroud)

要么

edge.type = 'dotted';
Run Code Online (Sandbox Code Playgroud)

如何将两种样式应用于边缘?

小智 1

“感谢您的回答,但我想要一个既弯曲又虚线的边缘。也许唯一的方法是重写插件...... \xe2\x80\x93 rvandoni”

\n

我需要类似的东西,是的,这似乎是唯一的方法。

\n

为了缓解问题:

\n

添加:

\n

context.setLineDash([6,6]); // numbers describe length of drawn line then blank, so you may want different values.

\n

在文件中:“sigma.canvas.edges.curvedArrow.js”

\n

就在代码之前:

\n
context.setLineDash([6,6]); // <---\ncontext.strokeStyle = color;\ncontext.lineWidth = size;\ncontext.beginPath();\ncontext.moveTo(sX, sY);\nif (source.id === target.id) {\n  context.bezierCurveTo(cp.x2, cp.y2, cp.x1, cp.y1, aX, aY);\n} else {\n  context.quadraticCurveTo(cp.x, cp.y, aX, aY);\n}\ncontext.stroke();\n
Run Code Online (Sandbox Code Playgroud)\n

您可能需要两个版本,因此只需为其复制/创建新函数或参数化即可。

\n