Point
オブジェクトは、座標の直交ペアを定義します。2 次元の座標系において、水平軸を表す
x
と垂直軸を表す
y
により 1 つのポイントを表現します。
Point オブジェクトを定義する際は、次のように
x
プロパティと
y
プロパティを設定します。
import flash.geom.*;
var pt1:Point = new Point(10, 20); // x == 10; y == 20
var pt2:Point = new Point();
pt2.x = 10;
pt2.y = 20;
2 つのポイント間の距離の検索
Point クラスの
distance()
メソッドを使用すると、同じ座標空間内にある 2 つのポイント間について距離を調べることができます。例えば、次のコードでは、同じ表示オブジェクトコンテナ内にある 2 つの表示オブジェクト
circle1
および
circle2
が持つ基準点間の距離を取得します。
import flash.geom.*;
var pt1:Point = new Point(circle1.x, circle1.y);
var pt2:Point = new Point(circle2.x, circle2.y);
var distance:Number = Point.distance(pt1, pt2);
座標空間の変換
2 つの表示オブジェクトがそれぞれ異なる表示オブジェクトコンテナ内にある場合は、それぞれが異なる座標空間に属している可能性があります。DisplayObject クラスの
localToGlobal()
メソッドを使用すると、それらの座標を共通のグローバルな座標空間(ステージ座標)に変換できます。例えば、次のコードでは、別々の表示オブジェクトコンテナ内にある 2 つの表示オブジェクト
circle1
および
circle2
が持つ基準点間の距離を取得します。
import flash.geom.*;
var pt1:Point = new Point(circle1.x, circle1.y);
pt1 = circle1.localToGlobal(pt1);
var pt2:Point = new Point(circle2.x, circle2.y);
pt2 = circle2.localToGlobal(pt2);
var distance:Number = Point.distance(pt1, pt2);
同様に、ステージ上の特定の点から表示オブジェクト
target
の基準点までの距離を調べるには、DisplayObject クラスの
localToGlobal()
メソッドを使用します。
import flash.geom.*;
var stageCenter:Point = new Point();
stageCenter.x = this.stage.stageWidth / 2;
stageCenter.y = this.stage.stageHeight / 2;
var targetCenter:Point = new Point(target.x, target.y);
targetCenter = target.localToGlobal(targetCenter);
var distance:Number = Point.distance(stageCenter, targetCenter);
表示オブジェクトの指定された角度と距離の移動
移動距離と角度を指定してオブジェクトを移動するには、Point クラスの
polar()
メソッドを使用します。例えば、次のコードでは、
myDisplayObject
オブジェクトを 60 度の方向に 100 ピクセル分だけ移動します。
import flash.geom.*;
var distance:Number = 100;
var angle:Number = 2 * Math.PI * (90 / 360);
var translatePoint:Point = Point.polar(distance, angle);
myDisplayObject.x += translatePoint.x;
myDisplayObject.y += translatePoint.y;
Point クラスのその他の使用
Point オブジェクトは次のメソッドおよびプロパティで使用できます。
クラス
|
メソッドまたはプロパティ
|
説明
|
DisplayObjectContainer
|
areInaccessibleObjectsUnderPoint()getObjectsUnderPoint()
|
表示オブジェクトコンテナ内のポイントに存在するオブジェクトのリストを返すために使用します。
|
BitmapData
|
hitTest()
|
BitmapData オブジェクト内のピクセルと、衝突のチェックに使用するポイントを定義するために使用します。
|
BitmapData
|
applyFilter()
copyChannel()
merge()
paletteMap()
pixelDissolve()
threshold()
|
操作の対象とする長方形の位置を定義するために使用します。
|
Matrix
|
deltaTransformPoint()
transformPoint()
|
変換を適用するポイントを定義するために使用します。
|
Rectangle
|
bottomRight
size
topLeft
|
これらのプロパティを定義するために使用します。
|
|
|
|