【问题标题】:Can't remove rotation in D3's radial tree layout无法在 D3 的径向树布局中移除旋转
【发布时间】:2013-04-22 14:27:21
【问题描述】:

我有这个 D3 径向树图,我需要的是不旋转的图像,而是直接一起显示它对应的蓝色圆圈。 Here 是 Codepen 中的代码,我在这里复制它:

var radius = 960 / 2;

var tree = d3.layout.tree()
  .size([360, radius - 120])
  .separation(function (a, b) { return (a.parent == b.parent ? 1 : 2) / a.depth; });

var diagonal = d3.svg.diagonal.radial()
  .projection(function (d) { return [d.y, d.x / 180 * Math.PI]; })

var vis = d3.select('#graph').append('svg:svg')
  .attr('width', radius * 2)
  .attr('height', radius * 2 - 150)
  .append('g')
  .attr('transform', 'translate(' + radius + ',' + radius + ')');

d3.json('flare2.json', function (json) {
  var nodes = tree.nodes(json);
  var link = vis.selectAll('path.link')
    .data(tree.links(nodes))
    .enter().append('path')
    .attr('class', 'link')
    .attr('d', diagonal);
  var node = vis.selectAll('g.node')
    .data(nodes)
    .enter().append('g')
    .attr('class', 'node')
    .attr("transform", function(d) { return "rotate(" + (d.x - 90) + ")translate(" + d.y + ")"; });
  node.append('circle')
    .attr('r', 4.5);
  node.append('image')
    .attr('xlink:href', 'img/avatar.40.gif')
    .attr('width', 40)
    .attr('height', 40)
    .attr('x', 10);
  node.append('image')
    .attr('xlink:href', 'img/avatar.41.gif')
    .attr('width', 40)
    .attr('height', 40)
    .attr('x', 50 );
});

【问题讨论】:

    标签: javascript d3.js


    【解决方案1】:

    您的节点已旋转

    .attr("transform", function(d) { return "rotate(" + (d.x - 90) + ")translate(" + d.y + ")"; })
    

    并且您的图像被附加到您的节点

    node.append('image')
    

    所以你需要将图像旋转回来

    .attr("transform", function(d) { return "rotate(" + (90 - d.x) + ")"; })
    

    我不确定你想如何定位它们,但你需要在 xy 上翻译它们。

    查看一个工作示例:http://codepen.io/anon/pen/qiCeG

    【讨论】:

    • 是否可以不旋转节点而不是反向旋转节点上的元素?当我尝试这样做时,我的链接和节点会发疯。
    • Android,我不清楚您要完成什么。你能发布一个例子或更详细地描述一下吗?
    • 尝试完成相同的最终结果,而不旋转节点本身。不是真正的功能问题,只是我的一个烦恼。猜猜我可以尝试指定 x/y 值而不是使用旋转。但并不是要劫持线程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多