Поиск…


Получение угла между двумя точками

Использование математики ванили:

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);

Используя новый вектор, представляющий разницу между двумя первыми:

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

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

Примечание: atan2() возвращает радианы, а не градусы.

Получение расстояния между двумя точками

Использование математики ванили:

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 вы хотите переместить:

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

Вы можете перемещаться вдоль оси x с помощью Math.cos :

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

И ось y с Math.sin :

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