











最近看了flash
觉得很有趣,而且差不多都是面对对象的语言,上手很快,如果大家有兴趣可以学一下!!
1
class vector
2
{ var x;
3
var y;
4
public function vector(x,y)
5
{ this.x=x;
6
this.y=y;
7
8
9
}
10
//
11
function toString()
12
{ var rx=Math.round (x*1000)/1000;
13
var ry=Math.round(y*1000)/1000;
14
return "["+ rx+","+ry+"]";
15
}
16
function reset(x,y)
17
{this.x=x;
18
this.y=y;
19
}
20
function equals(v)
21
{return (x==v.x&&y==v.y)}
22
//向量相加
23
function plus(v)
24
{this.x+=v.x;
25
this.y+=v.y;}
26
//仅返回相加值
27
function plusNew (v)
28
{return (this.x+v.x,this.y+y);
29
}
30
//减法
31
function minus(v)
32
{this.x-=v.x;
33
this.y-=v.y;}
34
function minusNew(v)
35
{return (this.x+v.x,this.y+v.y);}
36
//取反
37
function negate(v)
38
{this.x=-this.x;
39
this.y=-this.y}
40
function negateNew(v)
41
{return(-this.x,-this.y);}
42
43
//向量的缩放
44
function scale(s)
45
{this.x*=s;
46
this.y*=s;
47
}
48
function scaleNew(s)
49
{return (this.x*s,this.y*s)
50
}
51
//get length
52
function getLength()
53
{ return Math.sqrt (this.x*this.x+this.y*this.y);}
54
//set length
55
function setLength(len)
56
{var r=this.getLength();
57
if(r){this.scale(len/r)}
58
else
59
{this.x=len;}}
60
61
62
//get angle
63
function getAngle()
64
{return(Math.atan2 (this.x,this.y));}
65
66
//set angle
67
function setAngle(angle)
68
{var r=getLength();
69
this.x=r*Math.cos (angle);
70
this.y=r*Math.sin(angle);}
71
72
//rotate
73
function rotate (angle)
74
{var ca=Math.cos (angle);
75
var sa=Math.sin(angle);
76
with(this)
77
{var rx=x*ca-y*sa;
78
var ry=x*sa+y*ca;
79
x=rx;
80
y=ry;
81
}}
82
83
function rotateNew(angle)
84
{var v=new vector(this.x,this.y);
85
v.rotate(angle);
86
return v;}
87
88
//点击 dot
89
function dot(v)
90
{return (this.x*v.x+this.y*v.y)}
91
//法向量
92
function getNormal()
93
{return({-this.y,this.x})}
94
//垂直验证
95
function isPerpTo(v)
96
{return(this.dot(v)==0)}
97
//计算两向量的角度
98
function angleBetween(v)
99
{var dp=this.dot(v);
100
var cosAngle=dp/(this.getLength()*v.getLength());
101
return Math.acos (cosAngle);
102
}
103
104
105
106
107
108
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。