2015-01-21 160 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 2015-01-21 06:51:39

+0

@ Fygo不知道那个。感谢您指出了这一点 – Karmacon 2015-01-21 19:24:51

0

我相信最好的方法是使用类Point的静态方法距离(返回pt1和pt2之间的距离)。 我也建议你也检查一些有用的方法作为距离,插值等。

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

trace(Point.distance(p1, p2)); // 5