Это может быть FAQ, поэтому не стесняйтесь указать мне на другой ответ. Тема трудно найти.
Если я хочу использовать d3.js для получения атрибута, явно объявленного в объекте SVG, или я явно помещаю его с помощью D3, я могу легко получить значение атрибута с помощью d3.select
. Например, это печатает 300:
...
<circle id="mycircle" r="10" cx="100" cy="200">
...
d3.select("#mycircle").attr("cx", 300);
console.log(d3.select("#mycircle").attr("cx"));
Что делать, если я не устанавливаю явное значение атрибута, но он неявно "установлен" из группы <g>
? Или: как я могу использовать код, чтобы узнать, где находится группа <g>
? Я хотел бы каким-то образом определить, где в абсолютной системе координат объекта <svg>
находятся вещи внутри <g>
. Если бы я знал, где находится <g>
, как он ориентирован в пространстве и т.д., Я мог бы выяснить, где в нем находятся точки. Как я могу это сделать?
BigBadaboom замечает в комментарии к этому вопросу, что наследуемое не является парой координат, а атрибутом transform
. Поэтому я могу выбрать <g>
и получить значение атрибута transform:
console.log(d3.select("#mygroup").attr("transform"));
который печатает, например:
"Поворот (-125,93) перевод (0, -25)"
Должен ли я разобрать это, чтобы узнать, где находится <g>
в абсолютной системе координат?