flash中三维动画学习(关于类)
这几天认真学习了flash中,action script,虽然他无法与.net相比,不过同样是面对对象的语言,
实在是体会了这个思想的伟大,我是学习了Robert Peners的文章,现在负上一个试验,几个类的源码
,由于是初学,请见谅
在vectors.as中
只是定义几个关于坐标转换的function,但是实际的效果太出乎意料了,虽然我血flash才短短的11天
但是我已经被深深吸引了,有在c#的基础,action script实在太简单,学起来相当容易,毕竟他现在还不
是
真正面对对象的语言,不知道,我都快放弃.net了,要是大家有建议请告诉我,谢谢!!
请问asp.net能不能和flash产生交互,我只知道和php,能进行交互,在asp.net条件下,要是能行的话,就太好了
z这是三维的类
下载vectors.rar
实在是体会了这个思想的伟大,我是学习了Robert Peners的文章,现在负上一个试验,几个类的源码
,由于是初学,请见谅
在vectors.as中
只是定义几个关于坐标转换的function,但是实际的效果太出乎意料了,虽然我血flash才短短的11天
但是我已经被深深吸引了,有在c#的基础,action script实在太简单,学起来相当容易,毕竟他现在还不
是
真正面对对象的语言,不知道,我都快放弃.net了,要是大家有建议请告诉我,谢谢!!
请问asp.net能不能和flash产生交互,我只知道和php,能进行交互,在asp.net条件下,要是能行的话,就太好了
z这是三维的类
1
class vectors {
2
var x;
3
var y;
4
var z;
5
public function vectors(x, y, z) {
6
this.x = x;
7
this.y = y;
8
this.z = z;
9
}
10
//
11
function toString() {
12
var rx = Math.round(x*1000)/1000;
13
var ry = Math.round(y*1000)/1000;
14
var rz = Math.round(z*1000)/1000;
15
return "["+rx+","+ry+","+rz+"]";
16
}
17
//reset vector
18
function reset(x, y, z) {
19
this.x = x;
20
this.y = y;
21
// this.z=z;
22
}
23
/////I can't creat this way to clone
24
//
25
//
26
//
27
//function getClone()
28
//{var a;}
29
// compare two vector
30
function equal(v) {
31
return (this.x == v.x && this.y == y && this.z == z);
32
}
33
// put two vector in sum
34
function plus(v) {
35
this.x += v.x;
36
this.y += v.y;
37
this.z += v.z;
38
}
39
//show the result of the vector temperarily
40
function plusNew(v) {
41
return (this.x+v.x, this.y+y, this.z+z);
42
}
43
//a vector subtract form anothor vector
44
function minus(v) {
45
this.x -= v.x;
46
this.y -= v.y;
47
this.z -= v.z;
48
}
49
//show the result of the temperary vector
50
function minusNew(v) {
51
return (this.x-v.x && this.y-v.y && this.z-v.z);
52
}
53
// negator of the vector
54
function negate() {
55
this.x = -this.x;
56
this.y = -this.y;
57
this.z = -this.z;
58
}
59
//the temperary negator of the vector
60
function negateNew() {
61
with (this) {
62
return (-x, -y, -z);
63
}
64
}
65
//
66
//scale the model to this vector
67
function scale(s) {
68
this.x *= s;
69
this.y *= s;
70
this.z *= s;
71
}
72
function scaleNew(s) {
73
return (this.x*s, this.y*s, this.z*s);
74
}
75
// get length
76
function getLength() {
77
return (Math.sqrt(this.x*this+this.y*this.y+this.z*this.z));
78
}
79
//set length
80
function setlength(len) {
81
var r = this.getLength();
82
with (this) {
83
this.x *= (len/r);
84
this.y *= (len/r);
85
this.z *= (len/r);
86
}
87
}
88
//dot
89
function dot(v) {
90
return (this.x*v.x+this.y*v.x+this.z*v.z);
91
}
92
//cross to two vector
93
function cross(v) {
94
with (this) {
95
var cx = y*v.z-z*v.y;
96
var cy = z*v.x-x*v.z;
97
var cz = x*v.y-y*v.x;
98
}
99
return (new vectors(cx, cy, cz));
100
}
101
//get between angle
102
function angleBetween(v) {
103
var dp = this.dot(v);
104
var cosangle = Math.acos(this.getLength()*v.getlength()/dp);
105
return Math.acos(cosangle);
106
}
107
//get
108
function getPerspective(viewDist) {
109
if (viewDist == undefined) {
110
viewDist = 300;
111
}
112
return viewDist/(this.z+viewDist);
113
}
114
function persProject(p) {
115
if (p == undefined) {
116
p = this.getPerspective();
117
}
118
with (this) {
119
x *= p;
120
y *= p;
121
z = 0;
122
}
123
}
124
function persProjectNew(p) {
125
if (p == undefined) {
126
p = getPerspective();
127
}
128
with (this) {
129
return (new vectors(p*x, p*y, 0));
130
}
131
}
132
//rotate with x
133
function rotateX(angle) {
134
var ca = Math.cos(angle);
135
var sa = Math.sin(angle);
136
with (this) {
137
var temy = y*ca-z*sa;
138
var temz = y*sa+z*ca;
139
}
140
y = temy;
141
z = temz;
142
}
143
function rotateY(angle) {
144
var ca = Math.cos(angle);
145
var sa = Math.sin(angle);
146
with (this) {
147
var temz = z*ca-x*sa;
148
var temx = z*sa+x*ca;
149
}
150
x = temx;
151
z = temz;
152
}
153
function rotateZ(angle) {
154
var ca = Math.cos(angle);
155
var sa = Math.sin(angle);
156
with (this) {
157
var temx = x*ca-y*sa;
158
var temy = x*sa+y*ca;
159
}
160
y = temy;
161
x = temx;
162
}
163
function rotateXY(a, b) {
164
var ca = Math.cos(a);
165
var sa = Math.sin(a);
166
var cb = Math.cos(b);
167
var sb = Math.sin(b);
168
with (this) {
169
//with x rotate
170
y = y*ca-z*sa;
171
var rz = y*sa+z*ca;
172
z = x*(-sb)+rz*cb;
173
x = x*cb+rz*sb;
174
}
175
}
176
function rotateXYZ(a, b, c) {
177
with (Math) {
178
var ca = cos(a), sa = sin(a);
179
var cb = cos(b), sb = sin(b);
180
var cc = cos(c), sc = sin(c);
181
}
182
with (this)
183
{ //rotate with x
184
var ry = y*ca-z*sa;
185
var rz=y*sa+z*ca;
186
//rotate with y
187
z=rz*cb-x*sb;
188
var rx=x*sb+rz*cb;
189
//rotate with z
190
x=rx*cc-ry*sc
191
y=rx*sc+ry*cc;
192
193
}
194
}
195
function rotateXYZNew(a, b, c) {
196
with (Math) {
197
var ca = cos(a), sa = sin(a);
198
var cb = cos(b), sb = sin(b);
199
var cc = cos(c), sc = sin(c);
200
}
201
with (this)
202
{ //rotate with x
203
var ry = y*ca-z*sa;
204
var rz=y*sa+z*ca;
205
//rotate with y
206
z=rz*cb-x*sb;
207
var rx=x*sb+rz*cb;
208
//rotate with z
209
x=rx*cc-ry*sc
210
y=rx*sc+ry*cc;
211
212
}
213
214
}
215
}
216![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
2
![](/Images/OutliningIndicators/InBlock.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/InBlock.gif)
5
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
6
![](/Images/OutliningIndicators/InBlock.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
23
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
61
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
64
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
72
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/InBlock.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
87
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
90
![](/Images/OutliningIndicators/InBlock.gif)
91
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
94
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
95
![](/Images/OutliningIndicators/InBlock.gif)
96
![](/Images/OutliningIndicators/InBlock.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
101
![](/Images/OutliningIndicators/InBlock.gif)
102
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
103
![](/Images/OutliningIndicators/InBlock.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
107
![](/Images/OutliningIndicators/InBlock.gif)
108
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
109
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
110
![](/Images/OutliningIndicators/InBlock.gif)
111
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
112
![](/Images/OutliningIndicators/InBlock.gif)
113
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
114
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
115
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
116
![](/Images/OutliningIndicators/InBlock.gif)
117
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
118
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
119
![](/Images/OutliningIndicators/InBlock.gif)
120
![](/Images/OutliningIndicators/InBlock.gif)
121
![](/Images/OutliningIndicators/InBlock.gif)
122
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
123
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
124
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
125
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
126
![](/Images/OutliningIndicators/InBlock.gif)
127
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
128
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
129
![](/Images/OutliningIndicators/InBlock.gif)
130
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
131
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
132
![](/Images/OutliningIndicators/InBlock.gif)
133
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
134
![](/Images/OutliningIndicators/InBlock.gif)
135
![](/Images/OutliningIndicators/InBlock.gif)
136
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
137
![](/Images/OutliningIndicators/InBlock.gif)
138
![](/Images/OutliningIndicators/InBlock.gif)
139
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
140
![](/Images/OutliningIndicators/InBlock.gif)
141
![](/Images/OutliningIndicators/InBlock.gif)
142
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
143
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
144
![](/Images/OutliningIndicators/InBlock.gif)
145
![](/Images/OutliningIndicators/InBlock.gif)
146
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
147
![](/Images/OutliningIndicators/InBlock.gif)
148
![](/Images/OutliningIndicators/InBlock.gif)
149
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
150
![](/Images/OutliningIndicators/InBlock.gif)
151
![](/Images/OutliningIndicators/InBlock.gif)
152
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
153
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
154
![](/Images/OutliningIndicators/InBlock.gif)
155
![](/Images/OutliningIndicators/InBlock.gif)
156
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
157
![](/Images/OutliningIndicators/InBlock.gif)
158
![](/Images/OutliningIndicators/InBlock.gif)
159
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
160
![](/Images/OutliningIndicators/InBlock.gif)
161
![](/Images/OutliningIndicators/InBlock.gif)
162
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
163
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
164
![](/Images/OutliningIndicators/InBlock.gif)
165
![](/Images/OutliningIndicators/InBlock.gif)
166
![](/Images/OutliningIndicators/InBlock.gif)
167
![](/Images/OutliningIndicators/InBlock.gif)
168
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
169
![](/Images/OutliningIndicators/InBlock.gif)
170
![](/Images/OutliningIndicators/InBlock.gif)
171
![](/Images/OutliningIndicators/InBlock.gif)
172
![](/Images/OutliningIndicators/InBlock.gif)
173
![](/Images/OutliningIndicators/InBlock.gif)
174
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
175
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
176
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
177
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
178
![](/Images/OutliningIndicators/InBlock.gif)
179
![](/Images/OutliningIndicators/InBlock.gif)
180
![](/Images/OutliningIndicators/InBlock.gif)
181
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
182
![](/Images/OutliningIndicators/InBlock.gif)
183
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
184
![](/Images/OutliningIndicators/InBlock.gif)
185
![](/Images/OutliningIndicators/InBlock.gif)
186
![](/Images/OutliningIndicators/InBlock.gif)
187
![](/Images/OutliningIndicators/InBlock.gif)
188
![](/Images/OutliningIndicators/InBlock.gif)
189
![](/Images/OutliningIndicators/InBlock.gif)
190
![](/Images/OutliningIndicators/InBlock.gif)
191
![](/Images/OutliningIndicators/InBlock.gif)
192
![](/Images/OutliningIndicators/InBlock.gif)
193
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
194
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
195
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
196
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
197
![](/Images/OutliningIndicators/InBlock.gif)
198
![](/Images/OutliningIndicators/InBlock.gif)
199
![](/Images/OutliningIndicators/InBlock.gif)
200
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
201
![](/Images/OutliningIndicators/InBlock.gif)
202
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
203
![](/Images/OutliningIndicators/InBlock.gif)
204
![](/Images/OutliningIndicators/InBlock.gif)
205
![](/Images/OutliningIndicators/InBlock.gif)
206
![](/Images/OutliningIndicators/InBlock.gif)
207
![](/Images/OutliningIndicators/InBlock.gif)
208
![](/Images/OutliningIndicators/InBlock.gif)
209
![](/Images/OutliningIndicators/InBlock.gif)
210
![](/Images/OutliningIndicators/InBlock.gif)
211
![](/Images/OutliningIndicators/InBlock.gif)
212
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
213
![](/Images/OutliningIndicators/InBlock.gif)
214
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
215
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
216
![](/Images/OutliningIndicators/None.gif)
下载vectors.rar