2013-12-16 31 views
1

我已经加入标签可缩放的冰柱布局例子在这里提供:http://bl.ocks.org/mbostock/1005873如何在D3中的Zoomable冰柱布局中获取文本标签的旋转?

我基于使用可用空间旋转标签以下内容:

.attr("transform", function (d) { 
    return (x(d.x + d.dx) - x(d.x)) > 50 ? 
      ("translate(" + (x(d.x + d.dx/2)) + "," + (y(d.y + d.dy/2)) + ")rotate(0)") : 
      ("translate(" + (x(d.x + d.dx/2)) + "," + (y(d.y + d.dy/2)) + ")rotate(90)"); }) 

其旋转的标签90' 如果空间太大小以保持水平。

我想知道的是如何获得每个d的旋转值?

+0

我不确定我是否理解这个问题。你正在设置轮换,所以你会知道它是什么,不是吗? –

+0

道歉,我想在后面的每个函数中获取每个d的旋转值。 – sim1

回答

0

可以抽象出其确定旋转角简化表达式作为代码:

function rotation(d, x) { 
    return (x(d.x + d.dx) - x(d.x)) > 50 ? 0 : 90; 
} 

// ... 
.attr("transform", function (d) { 
     return "translate(" + [(x(d.x + d.dx/2)), (y(d.y + d.dy/2))] + ")" + 
      "rotate(" + rotation(d, x) + ")"; 
}) 

然后每当需要这势必数据d一个点的旋转值,调用rotation(d, x)

+0

非常感谢!这工作! – sim1