Flash与3D编程探秘(七)- 3D物体框架
2008-11-12 11:51:06 来源:WEB开发网本文示例源代码或素材下载
从这篇文章开始,我将开始介绍3D物体及其在空间中运动和交互。这里提到的物体是指单个的实体,比如银河系中的一颗恒星,那么空间就是银河系了。不过,所 有的一切都是相对的,当一个分子作为我们例子中的实体的时候,那么一个细胞也可以作为3D的空间来看待(一个细胞是由很多的分子组成),同理你可以知道细胞相对于一个生物(空间)来说也是一个物体。有些说多了,不过我想让你明白,我们用程序模拟一只小狗,或者一个人作为一个整体,但是我们不可能完全真实的模拟它。因为,人体由数不清的细胞组成,每一个细胞都是一个物体,做着自己的运动,除非我们使用计算机真实模拟着人体的每一个细胞以及它的运动,否则我们永远不可能得到一个真实模拟的人。但是使用现代的计算机科技我们是不可能模拟组成人体的所有细胞,那就更不用说组成每个细胞的分子。
还是言归正传来看一个3D物体的例子,这也是第一个绘制一个3D物体的例子。这个程序里,我们要创建一个正方体并且让它围绕着正方体的对角线交点自转,不过这个正方体还是由8个好朋友小P组成,每个顶点站一个,由它们来勾勒这个正方体的框架。
一个小P组成的正方体
动画制作步骤
1. 首先在Flash IDE里绘制一个物体小P。
2. 开始设置还是和以前一样,原点,摄像机,焦距等等,另外不要忘记创建一个旋转角度object,存放物体在x,y和z轴的旋转角度变量。
//constants
varPI=3.1415926535897932384626433832795;
//originisthecenteroftheviewpointin3dspace
//everythingscalearoundthispoint
//theselinesofcodewillshift3dspaceorigintothecenter
varorigin=newObject();
origin.x=stage.stageWidth/2;
origin.y=stage.stageHeight/2;
origin.z=0;
//focallengthofviewer'scamera
varfocal_length=300;
//nowcreateasceneobjecttoholdthespinningbox
varscene=newSprite();
scene.x=origin.x;
scene.y=origin.y
this.addChild(scene);
varaxis_rotation=newObject();
axis_rotation.x=0;
axis_rotation.y=0;
axis_rotation.z=0;
varcamera=newObject();
camera.x=0;
camera.y=0;
camera.z=0;
- ››FLASH不等于运算符!=的使用实例
- ››FLASH不全等运算符!==
- ››FLASH字符串分隔符运算符
- ››FLASH% 模运算符
- ››Flash+、++、+= 加法运算符
- ››Flash, 逗号运算符
- ››flash中的-、--、-=减法运算符
- ››Flash的-Infinity 常数、.点运算符、/ 除法运算符...
- ››Flash两种注释方法/*..*/ 和// 注释行分隔符运算符...
- ››Flash的/=除法赋值运算符、=赋值运算符、== 等于运...
- ››Flash之?: 条件运算符、^ 按位 XOR 运算符、^= 按...
- ››Flash的_framesloaded代码示例
赞助商链接