我正在尝试对连接到其周围节点的中心节点进行可视化。目前,中心节点和每个其他节点之间有一条线。我想把它改成两条不同宽度和颜色的平行线(一条显示有关呼叫的信息,另一条显示有关文本的信息)。 重要的是两条线完全相邻,两条线之间没有空间,没有重叠。
编辑:来自mdml的回答和LarsKotthoff的评论对我有所帮助。但是,我仍然面临一些问题,如评论所示:偏移似乎将两条线推向更大的方向(见imgur.com/Fwri75T)。我真的无法理解。我在这里更新了代码。完整代码可在https://www.dropbox.com/s/xykoln14euewm9z/Network%20View%20v2.zip?dl=0
找到 function total_width(d) {
return (d.inc_calls + d.out_calls + d.inc_texts + d.out_texts) / max_interactions * line_width_factor;
}
var line_diff = 1;
function line_perpendicular_shift(d, direction) {
theta = getAngle(d);
theta_perpendicular = theta + (Math.PI / 2)*direction;
width = total_width(d) + line_diff
// Both lines are pushed 1/4, moving the center by 1/2, causing the two lines to connect exactly at the middle.
delta_x = width / 4 * Math.cos(theta_perpendicular)
delta_y = width / 4 * Math.sin(theta_perpendicular)
return [delta_x, delta_y]
}