我该如何计算距离?

时间:2015-01-21 01:33:18

标签: actionscript-3

我想计算距离,所以就像。 "如果(对象靠近此对象10像素或更小)"或者喜欢(距离此对象10个像素或更远的对象)

这样做有好办法吗?感谢。

2 个答案:

答案 0 :(得分: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) );
}

答案 1 :(得分:0)

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

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

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