gpt4 book ai didi

d3.js - d3绘图箭头提示

转载 作者:行者123 更新时间:2023-12-03 14:57:38 24 4
gpt4 key购买 nike

在这个例子中:

http://jsfiddle.net/maxl/mNmYH/2/

如果我扩大圈子,例如:

var radius = 30; // (is 6 in the jsFiddle)
var circle = svg.append("svg:g").selectAll("circle")
.data(force.nodes())
.enter().append("svg:circle")
.attr("r", radius)


正确调整箭头图的最佳方法是什么
使其指向圆的半径?

谢谢

最佳答案

您要求“正确调整箭头图形的最佳方法”。
我不能断言以下方法是“最佳”方法,并且我期待其他答案,但这是解决此问题的一种方法。

http://jsfiddle.net/Y9Qq3/2/

相关更新如下所示。

...
var w = 960,
h = 500
markerWidth = 6,
markerHeight = 6,
cRadius = 30, // play with the cRadius value
refX = cRadius + (markerWidth * 2),
refY = -Math.sqrt(cRadius),
drSub = cRadius + refY;

...
svg.append("svg:defs").selectAll("marker")
.data(["suit", "licensing", "resolved"])
.enter().append("svg:marker")
.attr("id", String)
.attr("viewBox", "0 -5 10 10")
.attr("refX", refX)
.attr("refY", refY)
.attr("markerWidth", markerWidth)
.attr("markerHeight", markerHeight)
.attr("orient", "auto")
.append("svg:path")
.attr("d", "M0,-5L10,0L0,5");

...
function tick() {
path.attr("d", function (d) {
var dx = d.target.x - d.source.x,
dy = (d.target.y - d.source.y),
dr = Math.sqrt(dx * dx + dy * dy);
return "M" + d.source.x + "," + d.source.y + "A" + (dr - drSub) + "," + (dr - drSub) + " 0 0,1 " + d.target.x + "," + d.target.y;
});
...

关于d3.js - d3绘图箭头提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15054804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com