as3如何计算两点间的距离?我们在做flash数学课件时,有时可能需要计算两个点之间的距离。比如:两个点在同一个平面上是可以移动的,每当移动后,它们相对于原点的坐标就发生了变化,此时它们之间的距离也会相应地发生改变。
计算两点之间的距离,我们首先需要把它们放入坐标系中,X轴的方向是向右,而Y轴方向方向为向下。如下图,我们将A、B两点分别向下和向右画直线,令它们组一个直角三角形。在直角三角形中,有a*a+b*b=c*c,即斜边c=两条直角边的平方和再开平
而两条直角边a和b,则是两点横坐标的差、纵坐标的差。尽管在FLASH中,Y轴方向是向下的,X轴方向向右,但是原理仍然与数学坐标系中的情况完全相同。具体用代码实现如下:
var pA:Point=new Point(100,100);
var pB:Point=new Point(300,200);
var dx:Number=pA.x-pB.x;
var dy:Number=pA.y-pB.y;
var dist:Number=Math.sqrt(dx*dx+dy*dy);//看出勾股定理的影子了吗?
trace(dist);
其实在AS3语言中,已经内置了一个求两点距离的方法,它是Point类的一个静态方法,实现形式为Point.distance(p1,p2),所以前面的方法可以更加方便地实现:
var p1:Point=new Point(50,50);
var p2:Point=new Point(275,200);
trace(Point.distance(p1,p2));