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;
		}
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

as3 2d向量类 Vector2D

package Math2 { public class Vector2D { private var _x:Number; private var _y:Number; p...
  • fengsser
  • fengsser
  • 2013年11月14日 23:54
  • 2245

别人的东西,自己先用着!!!

4.运行以下代码将显示什么?__The value is: Dog___________ define(myvalue, "10"); $myarray[10] = "Dog"; $myarray[]...
  • zh964250740
  • zh964250740
  • 2009年05月15日 22:28
  • 109

推荐一个2D骨骼动画编辑工具,可以用在Unity3D和As3

http://liweizhaolili.blog.163.com/blog/static/16230744201432310562274/ 如果你喜欢做2D横版游戏,使用2D骨骼动...
  • chenluwolf
  • chenluwolf
  • 2014年06月09日 16:29
  • 2932

AS3 缓动加速动画

我们平时写的easing缓动系数,实现都是:缓动减速运动。 那么,要实现缓动加速动动,有位Q群朋友提出这个问题,一个星期前,还想着帮忙写出来。但当时发现写不出来。 一个星期后,突然在群里又...
  • linjf520
  • linjf520
  • 2013年11月08日 17:15
  • 2221

Android从基础做起——自定义View(随手移动的小球)

在这个浮躁的环境下,我一定要做好自己。 在我们自定义View时,我们需要先重写View中的构造方法。 public class DrawView extends View { private ...
  • u012706758
  • u012706758
  • 2014年12月10日 16:29
  • 1662

AS3 Vector2D 详细类

package { /** * Vector2D * Purpose: Utility class to assist in Vector manipulation in a 2D e...
  • linjf520
  • linjf520
  • 2012年03月26日 10:38
  • 1337

向量类的实现

向量在实现图形学的算法中有很重要的位置 ,下面是 用C++写的一个向量类,实现了一些 基本的 向量操作。 代码清单: gvector3.h #ifndef GVECTOR3_H #define ...
  • qp120291570
  • qp120291570
  • 2012年10月22日 23:53
  • 5829

随手写个node爬虫

以下案例是用node爬取百度传课,获取免费视频课程信息,并下载展示图片 const fs = require('fs'); const fetch = require('node-fetch'); c...
  • luzhongk
  • luzhongk
  • 2017年10月27日 16:34
  • 83

随手写个pwd命令

首先声明,这是《Unix/Linux编程实践教程》书上第4章的一个例子,用以说明chdir命令的使用,以及相关的文件系统内容。网上关于这个代码例子的网页(写在博客上的,百度知道什么的)很多。 根据书...
  • dyllove98
  • dyllove98
  • 2013年05月13日 22:19
  • 584

Android 建立项目遇到的问题(真实经历)和一个简单App项目

1.Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序 2.在用eclipse IDE开发android应用程序之前,你首先要创建一个Android工程...
  • nzzl54
  • nzzl54
  • 2015年06月15日 12:05
  • 596
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AS3 没有2D向量类,自己随手写个简化版的先用着
举报原因:
原因补充:

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