AS3 没有2D向量类,自己随手写个简化版的先用着

原创 2012年03月21日 19:10:25

用不着,叉乘、点乘,暂时写这么多,之前自己写的一个比较详细的,放在家了,目前要用这个简化版的:


package model
{
	/**
	 * 简化版向量类
	 * @author Jave.Lin
	 */	
	public class Vector2D
	{
		public var x:Number=0;
		public var y:Number=0;
		
		public function get length():Number
		{
			return Math.sqrt(x*x-y*y);
		}
		
		public function Vector2D($x:Number=0,$y:Number=0)
		{
			x=$x;
			y=$y;
		}
		
		public function multyRef(value:Number):void
		{
			x*=value;
			y*=value;
		}
		
		public function multy(value:Number):Vector2D
		{
			var v:Vector2D=new Vector2D(x,y);
			v.multyRef(value);
			return v;
		}
		
		public function devRef(value:Number):void
		{
			if(value==0)
			{
				//这里应该提示异常,但这里先不这样处理
				x=0;
				y=0;
				return;
			}
			x/=value;
			y/=value;
		}
		
		public function dev(value:Number):Vector2D
		{
			var v:Vector2D=new Vector2D(x,y);
			v.devRef(value);
			return v;
		}
		
		public function addRef(v:Vector2D):void
		{
			x+=v.x;
			y+=v.y;
		}
		
		public function add(v:Vector2D):Vector2D
		{
			var v:Vector2D=new Vector2D(x,y);
			v.addRef(v);
			return v;
		}
		
		public function subRef(v:Vector2D):void
		{
			x-=v.x;
			y-=v.y;
		}
		
		public function sub(v:Vector2D):Vector2D
		{
			var v:Vector2D=new Vector2D(x,y);
			v.sub(v);
			return v;
		}
		//单位化
		public function initializeRef():void
		{
			var len:Number=length;
			var rate:Number=1/len;
			x*=rate;
			y*=rate;
		}
		public function get initialize():Vector2D
		{
			var v:Vector2D=new Vector2D(x,y);
			v.initializeRef();
			return v;
		}
		//反向
		public function reverseRef():void
		{
			x*=-1;
			y*=-1;
		}
		
		public function reverse():Vector2D
		{
			var v:Vector2D=new Vector2D(x,y);
			v.reverseRef();
			return v;
		}
	}
}


相关文章推荐

Vector3——简单的3D向量类

  • 2015年05月08日 11:07
  • 3KB
  • 下载

【机器学习算法-python实现】svm支持向量机(2)—简化版SMO算法

(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景知识       通过上一节我们通过引入拉格朗日乗子得到支持向量机变形公式。详细变法可以参考这位大神的博...

网上找来的一个比较好用的3DES,找了很多都有问题。先用着这个吧。再次感谢提供算法的同学

.cpp:/* 3DES加密/解密程序*/#include "stdafx.h"#include #include #include #include #include #include #incl...

图形开发之3D向量类(C#)

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Vec...

C++实现一个Vector3空间向量类

Vector2,3,4类在DirectX中都有现成的可以调用,不过要实现其中的功能其实也不难,也都是一些简单的数学知识罢了。 本文用C++实现一个简单的Vector3类的功能,暂时有的功能是: 1 +...

2-9-4 我的向量类

问题及代码: #include using namespace std; class MyVector //定义向量类 { public: MyVector(int m)...

py2.7 : 《机器学习实战》 SVM支持向量机:1.26号 6-1 SMO算法简化版

概念:SMO(Sequential Minimal Optimization)是针对求解SVM问题的Lagrange对偶问题,一个二次规划式,开发的高效算法。传统的二次规划算法的计算开销正比于训练集的...

向量类(综合型题目)

  • 2011年11月14日 10:45
  • 25KB
  • 下载

AS3 Vector2D 详细类

package { /** * Vector2D * Purpose: Utility class to assist in Vector manipulation in a 2D e...

n维向量类(C++)

  • 2012年12月05日 18:52
  • 250KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AS3 没有2D向量类,自己随手写个简化版的先用着
举报原因:
原因补充:

(最多只允许输入30个字)