Comment obtenir les coordonnées absolues de l'objet à l'intérieur d'un & gt; g & gt; groupe?

Cela peut être une FAQ, donc n'hésitez pas à me pointer à une autre réponse. Le sujet est difficile de faire des recherches sur les.

Si je veux utiliser d3.js pour obtenir un attribut qui est explicitement déclaré dans une SVG de l'objet, ou que j'ai explicitement mis là à l'aide de D3, je peux facilement obtenir la valeur de l'attribut à l'aide de d3.select. Par exemple, cela s'imprime 300:

...
<circle id="mycircle" r="10" cx="100" cy="200">
...
d3.select("#mycircle").attr("cx", 300);
console.log(d3.select("#mycircle").attr("cx"));

Que faire si je n'ai pas explicite définir la valeur de l'attribut, mais il est implicitement "set" d'un <g> groupe? Ou: Comment puis-je utiliser le code pour savoir où se trouve une <g> groupe est centré? Je voudrais un moyen de déterminer où dans le système de coordonnées absolues de la <svg> objet les choses à l'intérieur de la <g> sont. Si je savais où la <g> était, comment il est orienté dans l'espace, etc., Je pouvais comprendre où les points à l'intérieur d'elle. Comment puis-je le faire?

BigBadaboom remarques dans un commentaire sur une réponse à cette question que ce qui est hérité n'est pas une paire de coordonnées, mais un transform attribut. Donc, je peux sélectionner un <g> et obtenir la valeur de l'attribut transform:

console.log(d3.select("#mygroup").attr("transform"));

qui imprime, par exemple:

"rotate(-125.93)traduire(0,-25)"

Dois-je analyser que de savoir d'où l' <g> est situé dans le système de coordonnées absolues?

source d'informationauteur Mars | 2014-09-25