PV3D
河职院杨浪
这个作者很懒,什么都没留下…
展开
-
2 PV3D的坐标
为了搞清PV3D的坐标系是左手系还是右手系,最简单的办法就是在场景中画出坐标轴来。 package { import flash.display.Sprite; import flash.events.Event; import org.papervision3d.core.geom.Lines3D; import org原创 2012-02-09 21:32:48 · 801 阅读 · 0 评论 -
14 重构太阳系(1)
在《嵌套(以太阳系为例)》中,我们显示了太阳、水星、地球和月球。但是所有的代码都是直接丢进文档类中,这样导致文档类比较臃肿,且逻辑关系复杂。很难想象如果将其他行星都加在进来,文档类会是什么样子?现在是时候重构SunSys项目的时候了。什么事重构呢?重构就是在不改变代码外在行为(功能)的前提下,对代码做出修改,以改进程序内部结构。分析文档类发现程序中存在4个实体,分别是太阳、水星、地球和月亮原创 2012-03-19 10:30:56 · 824 阅读 · 0 评论 -
13 如何发布AS3项目
在《如何将图片嵌入SWF》中,我们将图片资源嵌入到SWF文件中。这样,不管将SWF拷贝到哪里,都能看到图片。但是这种方法有明显的缺点,导致SWF文件大小急剧增加。那么有没有办法将SWF和图片资源分离,却又能在任何地方能显示资源呢?答案是有的。只要通过简单的设置即可。选择FD菜单【Project】→【Properties…】,打开属性面板,如下图所示。选择【Compiler Opti原创 2012-03-17 20:26:43 · 1597 阅读 · 1 评论 -
12 相册排列算法
下面看来来相册的示意图。上图最后一行为i = 0,第一列为j = 0。cx、cy的公式如下:cx = columns* planeSpacing * 0.5 - planeSpacing * 0.5;cy = rows* planeSpacing * 0.5 - planeSpacing * 0.5;只要求出cx、cy的坐标,就可以使用下面的公式算出所有平面的位置。p原创 2012-03-14 20:40:10 · 1233 阅读 · 5 评论 -
15 重构太阳系(2)
在《重构太阳系(1)》中,我们将太阳、水星、地球和月球从SunSys分离出来单独成类。并了解了组合的关系。但是我们忽略了3个容器与水星、地球、月亮的关系。我们通过下图可以清楚地明白SunSys中所有类的关系。 SunSys由Sun、WaterContainer和EarthContainer三个部分构成。WaterContainer由Water构成。EarthContain由原创 2012-03-19 11:32:25 · 848 阅读 · 0 评论 -
3 Flash如何显示物体
1 swf如何运行?当我们使用FlashCS3+创建Flash文件(AS3)的时候,要设置一个文档类(启动类),如下图所示。文档类Main代码如下。代码清单1package{ import flash.display.Sprite; public class Main extends Sprite{原创 2012-02-12 19:27:42 · 1042 阅读 · 0 评论 -
11 flv作为材质
使用视频作为材质贴图,需要用到VideoStreamMaterial类。下面代码是使用VideoStreamMaterial类生成视频材质。package { import flash.events.Event; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStr原创 2012-03-09 15:56:03 · 885 阅读 · 0 评论 -
0 PV3D四大核心类
PV3D核心类有四个,分别是(1)Scene3D场景类(所有物体的容器)、(2)Viewport3D窗口类、(3)Camera3D摄像机类、(4)BasicRenderEngine基本渲染引擎类。这四个类已经被整合到BasicView类中,创建BasicView后,其包含上面四个类的引用。(1)Viewport3D用来将3D场景中的三维图像映射到Flash的二维平面。相当于我们的显示器,我们经原创 2010-11-11 23:01:00 · 643 阅读 · 0 评论 -
10 3D对象的衣服(Material)
3D对象的衣服(Material)默认情况下,创建的3D对象的外观是随机颜色线条,如下图所示。这种颜色线条我们称之为线框材质(WireframeMaterial)。当创建一个3D对象时,如果指定材质为null,那么PV3D就会使用WireframeMaterial,然后随机生成颜色来装扮3D对象是的三角线条。如果所有的3D物体都由线框颜色装扮,那么这个3D世界也太无趣了原创 2012-03-07 13:43:59 · 1322 阅读 · 0 评论 -
4 如何显示PV3D中的3D物体
如何显示PV3D中的3D物体在PV3D中有四大核心类,分别是:Ø Scene3D场景类。所有3D物体的容器,要想在Flash中显示,就必须将3D物体添加到场景中。Ø Viewport3D窗口类。它规定了摄像机能拍摄的范围,超出这个范围的3D物体将不会显示。同时摄像机将拍摄的物体映射到窗口中。Ø Camera3D摄像机类。拍摄场景中的3D物体原创 2012-02-12 19:54:47 · 2395 阅读 · 2 评论 -
9 嵌套(以太阳系为例)
嵌套嵌套就是指将一个对象嵌入另一个容器对象中,当我们移动容器对象的时候,嵌入的对象也跟着容器对象移动。确切的说,嵌套就是将对象打包在一起形成一个整体,通过控制容器对象来整体移动。当使用PV3D实现太阳系运行效果时,嵌套能很好的解决他们之间旋转、旋转速度的问题。下面我们以Sun、Earth、Moon的运行讲解嵌套。第一步,在场景中创建一个大小为60的Sun对象sun,它被加载进场景的(0原创 2012-03-02 10:54:55 · 1177 阅读 · 5 评论 -
7 Plane的装扮
Plane的装扮我们可以使用PV3D提供的Plane类来显示平面:代码清单1package{ import flash.display.Sprite; import flash.events.Event; import org.papervision3d.objects.primitives.Plane; import or原创 2012-02-20 21:36:03 · 1280 阅读 · 0 评论 -
6 BasicView到底是什么东东
BasicView到底是什么东东?准备知识ü 类ü 继承ü 重写(override)在PV3D中有四大核心类,要在Flash中显示3D物体,就要使用这四个类。也就是说你要在每个项目中重复的定义这四个类。嗯,有人觉得没什么,多敲几行代码罢了。有人觉得这简直不能容忍。我是属于后面这种的。有什么办法结束这种重复的定义工作呢?有的,那就是B原创 2012-02-16 22:39:59 · 1421 阅读 · 0 评论 -
5 PV3D窗口如何被加载进舞台
在《4 如何显示PV3D中的3D物体》的代码1中,我们看到了如下运行效果。注意代码清单1中的语句:[SWF(width="640",height="480",backgroundColor="#FFFFFF")]这条语句的意思是设置SWF(舞台大小)的大小和背景颜色。我们把这句去掉后运行,将会看到如下界面。可以看到小球在舞台的中心偏上,为什么不是在舞台中央呢原创 2012-02-16 20:04:56 · 1336 阅读 · 0 评论 -
1 搭建Web 3D开发环境
搭建Web 3D开发环境 1 安装FlashDevelop(注意:FlashDevelop安装需要Java Runtime Environment 1.6(jre1.6)以及.NetFrameWork2.0)。可在http://www.flashdevelop.org/community/viewforum.php?f=11下载最新版本。 2 安装SVN。可在 http://t原创 2011-08-24 22:37:52 · 3668 阅读 · 0 评论 -
8 如何将图片加载进swf
如何将图片加载进swf使用位图文件材质(BitmapFilematerial)将图片贴到平面的时候,我们将会看到效果。不过大家有没有注意到,当我们将生成的运行文件swf拷贝到另外一个地方,打开时却不能显示图片。如何解决这个问题呢?可以使用Embed。Embed在Flash编译阶段就将资源嵌入,也就是说图片资源是会被编译进swf文件里面去的,这样子的好处是代码比较简洁,使用方便,也不存在加载原创 2012-02-22 21:17:01 · 2488 阅读 · 2 评论