您的位置:首页 > 其它

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

2011-08-26 15:08 330 查看
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; 
                      } 
                 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: