Comment faire pivoter un objet autour du centre d3.js
J'ai deux objets simples dans d3.js ils devraient être des cercles autour du centre de la fenêtre d'affichage (comme les planètes autour du soleil).
Je suis nouvelle d3.js et je sais que je dois utiliser des transitions mais comme les planètes ont de cercle, tout le temps, et pas seulement sur l'entrée ou à la sortie, je ne sais pas où et comment la transition.
Voici mon code actuel:
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; }
});
}
Et voici une jsfiddle de jouer.
OriginalL'auteur Marc | 2013-02-14
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de:
g
groupes dans ung
qui est centrée sur le soleild3.timer
dans lequel vous faites tourner votre groupe.Pour, par exemple de l'utilisation de
d3.timer
voir Mike Bostocks Planétaires Assurant L'Engrenage exemple. À l'aide de cet exemple, j'ai mis en place quelque chose de similaire à ce que vous avez demandé: http://bl.ocks.org/4953593De base de l'exemple:
Je sais que c'est vieux mais je suis tombé sur ce post. Est-il une raison pourquoi les <g>, ET la planète sont en rotation? J'ai fait quelques tests de rotation de la planète et seul le groupe et les résultats sont les mêmes, à l'exception d'un peu plus lent (ce qui est normal parce que j'ai coupé dans la moitié de l'effet de rotation).
OriginalL'auteur Jan van der Laan
Je sais que cela pourrait être trop tard. Mais j'espère que cela peut aider les futurs lecteurs s'ils sont aussi confrontés au même problème.
J'ai créé des violons et ajouter quelques explications ici, j'espère que ça peut aider:
http://www.zestyrock.com/data-visualization/d3-rotate-object-around-the-center-object-part-2/
Voici le code:
OriginalL'auteur catlovespurple