【发布时间】:2015-01-03 12:32:13
【问题描述】:
在这个小提琴中,我试图画一个箭头:
var svgContainer = d3.select("body").append("svg")
.attr("width", 1200)
.attr("height", 1200)
.attr("text-align" , "center");
var arrowStartPosition = 5
var arrowSpacing = 60
var verticalStrokeColor = "black"
var arrowYStartPosition = 5
var arrowYEndStartPosition = 150
var margin = 150;
var labelLine = svgContainer.append("line")
.attr("x1", arrowStartPosition + margin)
.attr("y1", arrowYStartPosition)
.attr("x2", arrowStartPosition + margin)
.attr("y2", arrowYEndStartPosition)
.attr("stroke-width", 2)
.attr("stroke", verticalStrokeColor);
var right = svgContainer.append("line")
.attr("x1", arrowStartPosition + margin)
.attr("y1", arrowYStartPosition)
.attr("x2", 20 + margin)
.attr("y2", 20)
.attr("stroke-width", 2)
.attr("stroke", "black");
var left = svgContainer.append("line")
.attr("x1", right.attr("x1")-15)
.attr("y1", right.attr("y1")+15)
.attr("x2", 5 + margin)
.attr("y2", 5)
.attr("stroke-width", 2)
.attr("stroke", "black");
为了尝试保持代码通用,我试图根据右侧的位置绘制箭头的左侧部分:
.attr("y1", right.attr("y1")+15)
但是从小提琴中可以看出:
https://jsfiddle.net/Qh9X5/3447/
箭头未正确绘制。
我认为这是因为right.attr("y1") 值在绘图时未初始化?
任何关于实现相同结果的更优雅方法的指针表示赞赏。
【问题讨论】:
-
抱歉revision 总结(想写'http:// to https://')。
标签: javascript jquery d3.js