【发布时间】:2014-12-11 15:40:32
【问题描述】:
如何围绕起点旋转条形?
我想旋转绿色矩形条指向圆心怎么做。
下面的代码是我如何绘制矩形的。
downNode = downNode
.data(_nodes)
.attr("id", function (d, i) {
return "nodeDown" + d.dbId;
})
.enter()
.append("rect")
.attr("class", "node").attr("class","downExpressed")
.attr("x", function (d) {
return Math.sin( Math.PI - (Math.max(0, Math.min(2 * Math.PI, x(d.dx)))+ Math.max(0, Math.min(2* Math.PI, x(d.dx + d.d_dx)))) / 2 ) * Math.max(0, y(d.dy+ d.d_dy)); })
.attr("height", function (d) {
var thea = Math.max(0, Math.min(2 * Math.PI, x(d.dx + d.d_dx))) - Math.max(0, Math.min(2 * Math.PI, x(d.dx)));
var r = Math.max(0, y(d.dy));
return Math.min(r * thea, Math.floor(_this.maxLevel));})
.attr("y", function (d) {
return Math.cos(Math.PI - (Math.max(0, Math.min(2 * Math.PI, x(d.dx)))+ Math.max(0, Math.min(2 * Math.PI, x(d.dx + d.d_dx)))) / 2) * Math.max(0, y(d.dy+ d.d_dy));})
.attr("width", function (d) {
return 1/2*Math.floor((d.expression.downs.length) / DownMax * ( Math.max(0, y(d.dy + d.d_dy)) - Math.max(0, y(d.dy)) ));
})
我先计算角度和r,然后通过rcos(thea) y位置rsin(thea)得到x位置;
但结果没有指向中心,我需要围绕矩形条的起点旋转它。
任何建议,谢谢。
【问题讨论】:
-
您正在设置 x,y,width,height 属性,您不应该设置
rotatetransform吗? -
谢谢,内红使用旋转功能,绿条需要放在外圈,所以我计算了一下,不使用旋转。最后,我使用堆积条形图,而不是放入外圈和内圈
标签: javascript d3.js transform