サーチ…


2つのポイント間の角度を取得する

バニラ数学を使う:

var from:Point = new Point(100, 50);
var to:Point = new Point(80, 95);

var angle:Number = Math.atan2(to.y - from.y, to.x - from.x);

最初の2つの間の差を表す新しいベクトルを使用する:

var difference:Point = to.subtract(from);

var angle:Number = Math.atan2(difference.y, difference.x);

注: atan2()は度ではなくラジアンを返します。

2点間の距離を取得する

バニラ数学を使う:

var from:Point = new Point(300, 10);
var to:Point = new Point(75, 40);

var a:Number = to.x - from.x;
var b:Number = to.y - from.y;

var distance:Number = Math.sqrt(a * a + b * b);

組み込みのPoint

var distance:Number = to.subtract(from).length; // or
var distance:Number = Point.distance(to, from);

ラジアンを度に変換する

var degrees:Number = radians * 180 / Math.PI;

度をラジアンに変換する

var radians:Number = degrees / 180 * Math.PI;

度とラジアン単位の円の値

  • 全体円は360度またはMath.PI * 2ラジアンです。
  • これらの値の半分は、 180度またはMath.PIラジアンになります。
  • 四分の一は90度またはMath.PI / 2ラジアンです。

ラジアン単位の円のパーセンテージとしてセグメントを取得するには:

function getSegment(percent:Number):Number {
    return Math.PI * 2 * percent;
}

var tenth:Number = getSegment(0.1); // One tenth of a circle in radians.

角度に沿ってポイントを移動する

あなたが移動したい角度と、移動したいxy値を持つオブジェクトがxyます:

var position:Point = new Point(10, 10);
var angle:Number = 1.25;

Math.cosMath.cosx軸に沿って移動することができます:

position.x += Math.cos(angle);

そして、 Math.siny軸:

position.y += Math.sin(angle);

もちろん、 Math.cosMath.sin結果にあなたが旅行したい距離を掛けることができます:

var distance:int = 20;

position.x += Math.cos(angle) * distance;
position.y += Math.sin(angle) * distance;

注:入力角度はラジアンでなければなりません。

点が矩形領域内にあるかどうかを判断する

Rectangle.containsPoint()を使用して、点が矩形内にあるかどうかをテストできます。

var point:Point = new Point(5, 5);
var rectangle:Rectangle = new Rectangle(0, 0, 10, 10);

var contains:Boolean = rectangle.containsPoint(point); // true


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow