Flash 实现3D的类(教程 源文件)

下面就让我来具体阐述一下这些3D类的用法。
注意,首先得保证这些类文件和你的fla文件在同一子目录下或者在publishing settings里面做了
相应的类文件添加,否则实例不会成功。

首先要向大家介绍的是TVector3D这个类。
今天的这部分内容可能要求您有点向量的知识,而且比起以后的略显枯燥和缺乏实用性。 缺乏足够的耐性和暂时不想学习向量知识的人可以略过。
表达能力或许欠佳,望海涵。
3dclasses.rar
每一个TVector3D类的实例,表示的是一个3D空间的向量,因此它是三维的。我们用三元组(x,y,z)表示它们,因此每个TVector3D类的实例有3个属性,分别是x,y和z。
申请一个新的TVector3D类实例的方法是:
var 你的变量名 = new TVector3D(x的值,y的值,z的值);

举例:
var v = new TVector3D(1,1,1);//v现在是一个表示向量(1,1,1)的TVector3D实例。
然后,让我们看看TVector3D提供哪些重要的方法。
1.printf()
printf是用trace向output窗口以三元组的形式输出此向量,无需参数。
举例:
var v = new TVector3D(1,1,1);
v.printf(); 
运行以后,你会发现在output窗口里面输出了(1,1,1);
这个方法一般在 调试程序 的时候使用。
注:千万不要让你的眼睛受欺骗: 如果某个数为1.4342e-15或者5.45561234234142e-17,要记住,这就是0,而非一个不是0的浮点数 !
2.reset()
reset是为这个TVector3D向量重新赋值。
举例:
var v = new TVector3D(1,1,1);
v.reset(2,2,2);
v.printf(); 
运行以后你会发现output窗口输出的是(2,2,2)而不是(1,1,1)

3.getCopy()

getCopy 方法是将该向量自身复制,并传递给另外一个TVector3D向量。
举例:
var v = new TVector3D(1,1,1);
var v1 = new TVector3D(0,0,0);
v1 = v.getCopy();
v1.printf(); 
这时候运行output窗口输出的是(1,1,1)而非(0,0,0);

4.向量运算的方法
(1) plusby
yourVector.plusby(b:TVEctor3D);
向量相加。需要一个参数b,b为与此向量相加的向量。
实例:
var v = new TVector3D(1,2,3);
var v1 = new TVector3D(3,2,1);
v.plusby(v1);
v.printf(); 
运行后输出(4,4,4)

(2)minusby
yourVector.minusby(b:TVector3D);
向量减法。需要一个参数b,b为与此向量相减的向量。
实例:
var v = new TVector3D(4,4,4);
var v1 = new TVector3D(3,2,1);
v.plusby(v1);
v.printf(); 
运行后输出(1,2,3) 
(3)realmulby
yourVector.realmulby(k:Number);
和实数相乘。需要一个参数k,k为与此向量相乘的实数(Number)。
实例:
var v = new TVector3D(1,4,2);
v.realmulby(2);
v.printf(); 
运行后输出(2,8,4)

(4)dotproby

yourVector.dotproby(b:TVector3D):Number;
向量点乘。需要一个参数b,b为与此向量点乘的向量。有返回值,为实数(Number)。
实例:
var v = new TVector3D(1,2,3);
var v1 = new TVector3D(3,2,1);

共5 页 首页 上一页 [1] [2] [3] [4] [5下一页 尾页>
赞助商广告