下面就让我来具体阐述一下这些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)。 实例:
|