d3:用更多维数组复制路径
d3: duplicating paths with more dimensional array
我用以下点(而不是随机点)复制了样条曲线示例:
var points = [[75, 15], [104, 80], [275, 80], [300, 15]];
它工作得很完美。现在我想用以下节点绘制两条路径(也都是可拖动的):
var points = [
[[75, 15], [104, 80], [275, 80], [300, 15]],
[[50, 20], [50, 100], [200, 200], [100, 300]]
];
通过选择第一个阵列,我可以完美地绘制第一条路径:
svg.append("path")
.datum(points[0])
.attr("class", "anchorPointPath")
.call(reDraw);
但我不能让它画两条路!感谢对d3初学者的任何帮助。
首先需要更改添加路径的方式:
svg.selectAll("path").data(points).enter().append("path")
.datum(function(d) { return d;})
.attr("class", "line")
.call(redraw);
这取两点数组,并为其中的每个数组添加一个路径。对于这些子数组中的每个,它都绑定该数组return d;
的数据。
在重绘函数中,将svg.select("path")
更改为svg.selectAll("path")
,以便选择所有路径元素。
此外,当您添加圆时,您可以获取所有点并将它们转换为一维数组:
var circles = points.reduce(function(t, c) {
return t.concat(c)
});
var circle = svg.selectAll("circle")
.data(circles, function(d) { return d; });
检查这个plunker。
相关文章:
- d3:用更多维数组复制路径
- $.get-json数组复制
- 用javascript将一个对象数组复制到另一个数组中(深度复制)
- 将数组复制到另一个数组中,并将缺少的字段替换为 null
- 仅将对象的 1 个属性从对象数组复制到新数组
- 具有嵌套数组的绝对无引用的数组复制
- 如何将数组复制到数组
- 将特定对象(根据给定条件)从对象数组复制到angularJS中的另一个数组中
- Javascript数组复制,concat和slice,哪个更好
- 将数组复制到“;这个“;变量(创建一个类似数组的对象)
- 角度,数组复制太迟
- Node.js添加相对路径字符串到数组复制斜杠
- 在AngularJS中将值从对象数组复制到输入字段
- 将2D数组复制到另一个工作表
- 在JQuery中,将一个对象数组复制到另一个数组是它的引用类型
- 如何将函数返回的数组复制到JavaScript中的另一个数组中
- 这是JS数组复制在没有循环展开的情况下最快的速度吗?
- 将数组复制到变量,同时排除项-性能
- 将PHP数组复制到javascript数组中
- JavaScript中使用自执行内部函数的数组复制函数