2010/07/10
//右回りの座標 var _pts1:Vector.<Point> = Vector.<Point>( [ new Point( -50, -50 ), new Point( 50, -50 ), new Point( 50, 50 ), new Point( -50, 50 ) ] ); //左周りの座標 _pts2:Vector.<Point> = Vector.<Point>( [ new Point( -50, -50 ), new Point( -50, 50 ), new Point( 50, 50 ), new Point( 50, -50 ) ] ); //符号付面積を返す function getArea( pts:Vector.<Point> ):Number{ var S:Number = 0; for( var i:uint=0; i<pts.length; i++ ){ var a:Point = pts[i]; var b:Point = ( i<pts.length-1 ) ? pts[ i+1 ] : pts[0]; S += a.x * b.y - a.y * b.x; } return S / 2; } //右回りの座標より取得 getArea( _pts1 ); //左回りの座標より取得 getArea( _pts2 );
Notes :: Text posted at 02:46 Permalink