ActionScript 3
ジオメトリの操作
サーチ…
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.
角度に沿ってポイントを移動する
あなたが移動したい角度と、移動したいx
とy
値を持つオブジェクトがx
とy
ます:
var position:Point = new Point(10, 10);
var angle:Number = 1.25;
Math.cos
をMath.cos
てx
軸に沿って移動することができます:
position.x += Math.cos(angle);
そして、 Math.sin
のy
軸:
position.y += Math.sin(angle);
もちろん、 Math.cos
とMath.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