`
hgfghwq14
  • 浏览: 49251 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
最近访客 更多访客>>
社区版块
存档分类
最新评论

Flash中的3D投影

阅读更多

 原文地址:
[url=http://www.bit-101.com/tutorials/perspective.html]
www.bit-101.com/tutorials/perspective.html
[/url]
原文作者:Keith Peters
PS:第一次翻译的,错的请指出。
这里我简单的对3D投影做了解释,首先我们看看3D完美运用的网站:
http://www.voxangelica.net
 
在New Masters of Flash 2002 Annual看了他发表的文章并且学到了很多,我现在尝试去分析这个3D效果:
------
最基础的3D投影公式是:
scale=fl/(fl+z);
//这里我理解scale为投影比例
fl是焦点距离(也就是眼睛到屏幕的距离)
z是物体在屏幕里的深度;
---------------
看看下面的剖面图:

你可以知道焦距f1和(z+f1);
Scale=fl/(fl+z);
这里定义f1=150;
如果z=0,你可以得出:
Scale = 150/(150+0);
再看下面:
如果z=100,你可以得出:
Scale = 150/(150+100);
投影比例将为0.6。
如果 z=500(离屏幕很远很远...)
Scale = 150/(150+500);
投影比例将大约为0.23;
从上面你可以看出当你不断增加Z时,投影比例scale将会越来越小,不断接近0,当Z刚好为0的或者刚好在屏幕上,投影比例将会为1.

但要怎样运用投影比例?你会从上面的图解发现,当距离屏幕的距离不断变大时,有两样东西会减少:
1.物体的大小;
2.越来月接近中点或者消失点;
但在FLASH语言中仅仅和_xscale 和 _yscale 和 _x 和 _y.有关;
下面你会得知如何运用它,首先你要定义你的X,Y和Z的值,你可以这样写:
scale=fl/(fl+z);
_x=x*scale;
_y=y*scale;
_xscale = _yscale = scale*100;
你可以从中看出地平线或者消失点是在(0,0)点。总的来说,当物体离你越来越远,它们将会接近消失点(0,0),而在FLASH中,就是主舞台左上角的点,如果你要使你的物体放在屏幕的中间,你可以像下面这样写:
xcenter=275;
ycenter=200;
scale=fl/(fl+z);
_x=x*scale+xcenter;
_y=y*scale+ycenter;
_xscale = _yscale = scale*100;
你现在要了解在中心的左边是X轴的负方向,正方向是中心点的右边,Y轴的负方向在你视线的上方,下方是Y轴的正方向.
我希望你可以了解和运用我说的和不断的使它演变的更有趣;如果你成功了,请务必要告诉我,如果你有任何意见或深一步分析最后的结论,请将副本发给我参考,谢谢。
下载源文件
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/235.html
分享到:
评论

相关推荐

    Flash ActionScript 3.0高级动画教程

    Flash 3D 基础 设置消失点 3D坐标 景深排序 3D容器 4 3D 旋转 视野和焦距 屏幕坐标系和3D 坐标系 本章小结 第八章 Fl ash10的绘画API 路径 一个简单的例子 画曲线 wide绘制命令和NO_OP 缠绕 三角 位图填充和三角 ...

    Flash Actionscript3.0高级动画教程源码

    《Flash ActionScript ...书中不仅涵盖了3D、最新绘图API以及Pixel Bender等Flash 10 ActionScript特性,深入介绍了碰撞检测、转向、寻路等Flash游戏开发技术,还通过实例具体讲解了等角投影和数值积分的基本理论和应用

    Flash ActionScript3 高级教程 PDF 版本.rar

    Flash ActionScript3 高级教程 pdf,书籍部分目录: 第一章 高级 碰撞检测 不规则图形的检测碰撞 BitmapData.hitTest用于非位图 大量对象的碰撞检测 实现基于网格的碰撞检测 编写网格代码 测试并调整网格 使用此类 ...

    cs4 3D编程 官方文档

    将 3D 对象投影到 2D 视图上 • 视野 • 投影中心 • 焦距 • 默认透视投影值

    Flash ActionScript 3.0高级动画教程+对应的代码资源(组合)

    第一章 高级碰撞检测 第二章 转向行为 第三章 等角投影 第四章 寻路 第五章 二级输入设备:摄像头和麦克风 第六章 高等物理:数值积分 第七章 3D in Flash10 第八章 Flash10的绘画API 第九章 Pixel Bender 第十章 补...

    Structred-Light:通过多次结构化光扫描来重建场景

    使用“简易”方法校准投影仪使用射线平面交点获得2D-3D对应关系并使用立体声校准 获取每个像素的二进制代码。 将代码与“ codebook”中从二进制代码->(x,y)提供的(x,y)位置相关联 具有2D-2D对应关系,执行...

    HTML5Panorama:使用 HTML5 和 Javascript 编码的全景查看器

    将矩形全景重新投影到圆柱体上的数学运算相当简单(涉及余割,代码中有更多细节)。 num_slices = 20。单个切片可见。 如果切片的数量相当多,则很难判断是否存在切片。 num_slices = 600 当然,切片越多,全景...

    集钻井方面关心的任何相关的模块,包括钻井轨迹计算、轨道设计、钻具受力

    后续的开发中,将实现报告文档的Flash化,通过Flash,可以给甲方或者后方领导察看当前的工作进度与工作状态。 4、 实现了avi动画的生成功能,您可以记录您的三维场景的操作,然后将该文件发送给同事或者领导来研判...

    电子签到软件

    2 提供3d墙功能实现联机签到,几乎时时同步,也就是假设A,B,C3台机器签到,D机器连接投影仪或者大屏幕,用来显示所有签到的嘉宾照片及语音祝福,中途来宾还可以互动哦! 因为签到是一个很长的时间 3 也提供单机版本签到...

    红蜘蛛教师系统

    采用全新视频驱动核心、MMX/SSE/SSE2指令和多级缓存技术,极大地提高屏幕广播速度和性能,对3D/游戏/电影/多媒体课件/动画/DVD视频/FLASH/POWERPOINT等都能非常流畅地没有任何延迟地进行广播,达到每秒30帧的速度;...

    网管教程 从入门到精通软件篇.txt

    CCT:Macromedia Director Shockwave投影 CDA:CD音频轨道 CDF:Microsoft频道定义格式文件 CDI:Philip的高密盘交互格式 CDM:Visual dBASE自定义数据模块文件 CDR:CorelDRAW绘图文件;原始音频CD数据文件 ...

Global site tag (gtag.js) - Google Analytics