2015-01-21 2 views
0

Я хочу рассчитать расстояние, так что. «Если (объект 10 пикселей или менее близко к этому объекту)» или подобное (объект 10 пикселей или более далеко от этого объекта)Как рассчитать расстояние?

Есть ли хороший способ сделать это? Благодарю.

ответ

0

Вы должны получить расстояние на каждой оси, а затем образуют треугольник между ними с помощью теоремы Пифагора:

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)); 
} 
+2

Или самый простой: Point.distance() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/geom/Point.html#distance%28%29 – Fygo

+0

@ Fygo Не знал об этом. Спасибо что подметил это – Karmacon

0

Я считаю, что лучший способ - использовать дистанцию ​​статического метода (возвращает расстояние между pt1 и pt2) класса Point. Я также рекомендую вам также проверить некоторые полезные методы как расстояние, интерполировать и так далее.

var p1:Point = new Point(0,0); 
var p2:Point = new Point(3,4); 

trace(Point.distance(p1, p2)); // 5 
Смежные вопросы