【发布时间】:2013-10-12 11:02:48
【问题描述】:
我想做一个D3图,应该如下:
加载html页面时,在固定位置会有一个节点。让我们说左上角。我们称之为模板节点,这个节点是不可移动的。
当用户在模板节点上按下鼠标时,会在与模板节点相同的位置创建一个新节点,并且用户应该能够将新节点拖到他想要的位置。新节点应保持在用户移动到的位置。
用户应该可以随时移动节点。同样,该节点应保留在用户离开它的位置。
用户应该能够在任意两个节点之间绘制链接。让我们假设如果他从一个节点拖动到另一个节点而不按住 ctrl 键,则绘制一个链接,如果他在按住 control 键的同时拖动,则节点移动。
在两个节点之间绘制链接时,节点不应改变位置。
当两个节点被链接并通过拖动其中一个节点移动时,链接的大小和方向应根据需要更改。
我正在使用强制布局。
我能够创建一个模板节点,但它总是指向容器的中心——我认为这是因为容器的中心是重心。但不知道如何通过代码将其位置固定在左上角。
我可以创建链接和新节点。但是节点移动并且链接调整大小。可能是因为力布局试图使链接长度等于力布局中的链接距离。但我不知道如何使用链接距离函数?我什至不确定这是否真的有帮助。
那么我应该使用什么方法呢?有什么想法吗?
【问题讨论】:
-
听起来你不想为此使用强制布局。
-
感谢您的回复。这是我的第二个问题。我发布这个是因为我觉得这与我之前的问题有很大不同。我应该使用哪种布局?
标签: javascript svg d3.js force-layout