Point オブジェクトの使用

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 クラスのその他の使用

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(circle1.x, circle1.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

これらのプロパティを定義するために使用します。


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000186.html