我在 d3.js 中有两个简单的对象,它们应该围绕视口的中心旋转(就像围绕太阳的行星)。
我是 d3.js 的新手,我知道我必须使用转换,但由于行星必须一直在旋转,而不仅仅是在进入或退出时,我不知道在哪里以及如何设置转换。
这是我当前的代码:
var planets = [
{d:100,r:2},
{d:150,r:4}
];
var w = 500, h = 400, svg, circle;
function init(){
svg = d3.select("#drawArea").append("svg").attr({width: w, height: h});
var center = {
x: Math.floor(w/2),
y: Math.floor(h/2)
};
svg.append('circle').attr({
'cx': center.x,
'cy': center.y,
'r': 10,
'class': 'sun'
});
circle = svg.selectAll(".planet")
.data(planets)
.enter()
.append("circle")
.attr("class", "planet")
.attr("r", function(s){return s.r});
circle.attr({
// distance from the center
'cx': function(s){ return center.x - s.d; },
// center of the screen
'cy': function(s){ return center.y; }
});
}
这是一个可以玩的jsfiddle 。