2011-07-28 15 views
8

現在、親要素(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の1の座標を取得しようとしますが、正しい結果を返しませんgetBBoxを使用しています。誰も正しいrectangleのx、y、width、heightプロパティを取得する方法を教えてもらえますか?

答えて

15

私は解決策を自分で見つけました。

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); 
+1

私は正確にこの機能のために、3日間のように探しています。なぜ私は他の答えがそれを使わないのか分かりません。 – InfernalRapture

+1

は、実際に変換されたワールド空間座標ではなく、スクリーン空間座標を返すことに注意してください。 –

関連する問題