| INDEX |

最近GraphicsPathと戯れているのですが、その関連で書いたGraphicsPathからシェイプの矩形を取得する関数を貼っておきます。滅多に使うことはないと思いますが、たまにはエントリーしてみるということで。

使い方は以下の通りです。

var gp:GraphicsPath = new GraphicsPath(...);
...
var rect:Rectangle = getGraphicsPathRect( gp.commands, gp.data );

つまり描画と関係なく矩形をいただこうということです。DisplayObjectのgetRect()と同じようなノリです。
関数は以下の通りです。

function getGraphicsPathRect( commands:Vector., data:Vector. ):Rectangle
{
    var minX:Number = Number.MAX_VALUE;
    var minY:Number = Number.MAX_VALUE;
    var maxX:Number = Number.MIN_VALUE;
    var maxY:Number = Number.MIN_VALUE;
    var di:int = 0;
    var len:int = commands.length;
    var px:Number = 0;
    var py:Number = 0;
    for ( var i:int = 0; i  0 && xt  maxX ) maxX = xt;
                if ( xt  0 && yt  maxY ) maxY = yt;
                if ( yt  maxX ) maxX = px;
        if ( px  maxY ) maxY = py;
        if ( py 

非常にまんまなので、もっと最適化できそうな気がしますがとりあえずコレで暫。
関係ありませんが、Graphics.copyFrom()でパスデータを取得したい…何故できない…。

| INDEX |