AS3 坐标系中的一些简单计算

来源:互联网 发布:steam壁纸软件 编辑:程序博客网 时间:2024/06/03 08:04

AS3 在坐标系中操作时,通常有一些常用的计算函数,比如求线的角度、两点间的距离、两点的中点、某个点是否在我选中的区域中等等

下面是一些常用函数,我在做程序时自己写的。

 

 

/** *获取两点间的中间点坐标  * @return  *  */private function getMiddlePoint(fromPoint:Point,toPoint:Point):Point{var rp:Point = new Point;rp.x = fromPoint.x/2 +toPoint.x/2;rp.y = fromPoint.y/2 +toPoint.y/2;return rp;}/** *获取线的角度   范围为 -180~180  * @param xFrom * @param yFrom * @param xTo * @param yTo * @return  *  */private function getAngle(xFrom:Number,yFrom:Number,xTo:Number,yTo:Number):Number{var tmpx:Number=xTo - xFrom;var tmpy:Number=yFrom - yTo;var angle:Number= Math.atan2(tmpy,tmpx)*(180/Math.PI);return angle;}/** *判断两个Point的坐标是否相等  * @param point1 * @param point2 * @return  *  */private function isEqualPoint(point1:Point,point2:Point):Boolean{if(point1.x == point2.x && point1.y == point2.y){return true;}else{return false;}}/** *获取两点间的距离  * @param onePoint * @param twoPoint * @return  *  */private function getPoint2PointDistance(fromPoint:Point,toPoint:Point):Number{return Math.sqrt(Math.pow(toPoint.x-fromPoint.x,2)+Math.pow(toPoint.y-fromPoint.y,2))}                   /**                   *判断一个点是否在某个矩形(rectangular)区域内                     *                    */                 private function pointInRect(point_x:Number,point_y:Number,rect_x1:Number,rect_y1:Number,rect_x2:Number,rect_y2:Number):Boolean{                       var x_in:Boolean=((point_x>rect_x1)&&(point_x<rect_x2)) || ((point_x>rect_x2)&&(point_x<rect_x1));                       var y_in:Boolean=((point_y>rect_y1)&&(point_y<rect_y2)) || ((point_y>rect_y2)&&(point_y<rect_y1));                       if (x_in && y_in){                          return true;                       }else{                          return false;                       }                  }