我目前正在绘制一个矩形,在其父元素(g)上进行转换。 产生的svg就是这个;
<svg version="1.1" width="1055" height="381">
<g transform="rotate(120)">
<rect x="0" y="0" width="100" height="100" rx="10" ry="0" stroke-width="0" style="stroke:rgb(0,0,0)" id="rect-0"></rect>
<rect x="100" y="0" width="100" height="100" rx="10" ry="0" stroke-width="0" style="stroke:rgb(0,0,0)" id="rect-1"></rect>
</g>
</svg>
现在我正在尝试动态检索其中一个 rects 的坐标,但使用getBBox不会返回正确的结果。谁能告诉我如何获得其中一个rect的正确x,y,width和height属性?
答案 0 :(得分:17)
我自己找到了解决方案;
var matrix = shape.getCTM();
// transform a point using the transformed matrix
var position = svg.createSVGPoint();
position.x = $(shape).attr("x");
position.y = $(shape).attr("y");
position = position.matrixTransform(matrix);