Я хочу рассчитать расстояние, так что. «Если (объект 10 пикселей или менее близко к этому объекту)» или подобное (объект 10 пикселей или более далеко от этого объекта)Как рассчитать расстояние?
Есть ли хороший способ сделать это? Благодарю.
Я хочу рассчитать расстояние, так что. «Если (объект 10 пикселей или менее близко к этому объекту)» или подобное (объект 10 пикселей или более далеко от этого объекта)Как рассчитать расстояние?
Есть ли хороший способ сделать это? Благодарю.
Вы должны получить расстояние на каждой оси, а затем образуют треугольник между ними с помощью теоремы Пифагора:
var p1:Point = new Point(0,0);
var p2:Point = new Point(3,4);
//distance on the x axis
var dx = p2.x - p1.x; //3
//distance on the y axis
var dy = p2.y - p1.y; //4
//c^2 = a^2 + b^2
var distance = Math.sqrt((dy * dy) + (dx * dx)); //5
Вот функция, которую вы можете использовать, чтобы сделать это
function getDistance(p1:Point, p2:Point):Number
{
var dx = p2.x - p1.x;
var dy = p2.y - p1.y;
return Math.sqrt((dy * dy) + (dx * dx));
}
Я считаю, что лучший способ - использовать дистанцию статического метода (возвращает расстояние между pt1 и pt2) класса Point. Я также рекомендую вам также проверить некоторые полезные методы как расстояние, интерполировать и так далее.
var p1:Point = new Point(0,0);
var p2:Point = new Point(3,4);
trace(Point.distance(p1, p2)); // 5
Или самый простой: Point.distance() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/geom/Point.html#distance%28%29 – Fygo
@ Fygo Не знал об этом. Спасибо что подметил это – Karmacon