我试图在VisJs中编写可视化管道代码。所以我有一个图表和一些节点。节点可以生成/使用几种不同的数据类型。所以我需要这样的东西
------------------
| Node1 |
------------------
int char
| |
| |
| |
| |
int string char
------------------
| Node2 |
------------------
因此,一个节点有多个锚点,只能连接到它自己的类型。我可以更改从绘制边缘的位置到节点中连接的位置吗?有没有人知道一个更好的JS库来做这个还是可以用VisJs来完成?
答案 0 :(得分:0)
基本上,你不能像你描述的那样这样做:每个节点有一个点,其中所有边缘来自/到,节点形状悬停在它上面。
但是,您可以使用隐藏节点来模拟它:https://jsfiddle.net/tjyvLbns/20/
var gap = 20; // distance from the center of the node to the new "anchor"
var nodes = new vis.DataSet([
{id:1,label:"node 1", x:0, y:0}
,{id:2,label:"node 1 left", x:-gap,y:0, hidden:true}
,{id:3,label:"node 1 right",x:gap,y:0, hidden:true}
,{id:4,label:"node 2", x:0, y:100}
,{id:5,label:"node 2 left", x:-gap,y:100, hidden:true}
,{id:6,label:"node 2 right",x:gap,y:100, hidden:true}
]);
var edges = new vis.DataSet([
{from:2, to:5}
,{from:3, to:6}
]);
给出:
如果您想操纵这些节点(通过拖放操作移动),这不是一个好方法,但如果您只需要一个静态可视化,这应该可以正常工作。