Flash中的3D投影

  原文地址:www.bit-101.com/tutorials/perspective.html
  原文作者: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轴的正方向.

  我希望你可以了解和运用我说的和不断的使它演变的更有趣;如果你成功了,请务必要告诉我,如果你有任何意见或深一步分析最后的结论,请将副本发给我参考,谢谢。

下载源文件

时间: 2024-11-01 05:10:29

Flash中的3D投影的相关文章

FLASH中制作静态三维效果图

静态 在阅读这篇教程,大家需要参阅图象区的"PS中实现3D效果",第三软件区"DIMENSIONS介绍","AE中实现三维效果","SWIFT 3D的介绍" 由于水平有限,若有错误 ,还请大家包含.参阅书目:<FLASH经典动画特效> 1. 网络发展到今天,没有哪个软件能像Flash那样得到那么多人的青睐.由于FLASH功能的简单易用,效果出众,使其具有了广泛的用户群体.然而,FLASH只是一个二维平面矢量软件,在

Flash CS4中的3d工具,deco工具和骨骼工具

核心提示:Flash Cs4在界面上与其上一个版本cs3总体来说并没有特别大的区别,下面就让我们来介绍一下CS4中的工具吧. Flash Cs4在界面上与其上一个版本cs3总体来说并没有特别大的区别,下面就让我们来介绍一下CS4中的工具吧.在工具菜单中 添加了3d工具deco工具骨骼工具. 针对mc添加了一个动画编辑器. 脚本语言没有变化. 主要针对新版本中的3d功能以及骨骼工具做了相对的试用下面是具体的示例. 一.3d工具的使用以实例 cs4没有3dmax等3d软件强大的建模工具,但是在cs4

Flash中的2D渲染和3D渲染都是通过Flash Player这个插件做到的么?

问题描述 flash_player_active_x就1.5M,Flash中的2D渲染和3D渲染都是通过它做到的么? 解决方案 3d渲染需要另外的引擎,player相当于虚拟机,负责解释执行.3D引擎也是用AS3写出来的

在FLASH中创造角色的注意事项

前阵子有朋友问我,为什么自己的FLASH动画作品总是有了动画剧情构想却总是无法完成一个完整的动画,不是画了一半就放弃就是画到最后"虎头蛇尾".总结了一下还是出在故事选材和角色设计上以及风格设计上的问题. 其实在FLASH中创造角色和传统的动画中创造角色没有什么本质的区别,只是在创造过程中所针对FLASH工具本身的特性会有些利弊. 必须要清楚的是,完全使用FLASH去制作动画在通常状况下是一种"小作坊"形式动画表现手法.虽然目前有自由组合的团队进行FLASH动画创作,

Flash CS4教程:3d工具实例和骨骼工具

Flash Cs4在界面上与其上一个版本cs3总体来说并没有特别大的区别,在工具菜单中 添加了3d工具deco工具骨骼工具. 针对mc添加了一个动画编辑器. 脚本语言没有变化. 主要针对新版本中的3d功能以及骨骼工具做了相对的试用下面是具体的示例.

基于Adobe Flash平台的3D页游技术剖析

写在前面 从黑暗之光,佛本是道,大战神的有插件3D页游.再到如今的魔龙之戒. 足以证明,3D无插件正在引领页游技术的潮流. 目前,要做到3D引擎,有以下几个选择. 说到这里,我们发现.这些都不重要. 因为本文目的就是从头到尾分析一下Adobe Flash平台目前对3D游戏的支持情况.   言归正转 本来是想写一些关于Stage3D.FlasCC以及基于Flash的3D页游引擎方面的文章. 也做了几天的准备工作,希望把这些事情能够给大家(主要是公司项目组内的成员)分享,并理清头绪. 然而就在周末准

FLASH中实现眨眼睛的动画效果

许多FLASH动画短片和MV中经常有精美生动的动画人物出现,配合眨眼动作.口形变化以及头发的飘动,再加上人物的配音,一个活脱脱的动画人物形象就出现在FLASH动画中了.很多人都想知道这样的人物是如何做得栩栩如生的,尤其是其中的简单动画效果,如眨眼的动作,如何制作人物的眨眼动画呢?其实技巧很简单,甚至都不需要专门教程来指导,但是对于初学者,笔者认为却是应该用一个实例教程来给予指导的.最近发现帝国的在线教程中也有很多这样的提问--"在FLASH中如何制作效果逼真的人物眨眼效果?",其他的F

在在Flash中使用ASP技术

在Flash中使用ASP需要的条件: 1.你的ISP的server必须支持Active Server Pages并且最好支持数据库 2.你应该要安装Flash mx 3.需要你对ASP有初步的了解OK,下面具体介绍怎么使用: 第一步要做的是建立数据库: 数据库结构: 例子中使用Access数据库,表名为tblStaff,有三个字段:strID (自动编号),strKnownAs(Text),strSurname (Text). 这是一个用来示范用户名的数据库,随便加些数据吧. 第二步就是建立一个

在Flash中使用ASP技术

数据库结构:第一步:建立数据库.例子中使用Access数据库,表名为tblStaff,有三个字段:strID (自动编号), strKnownAs(Text), strSurname (Text).这是一个用来示范用户名的数据库,随便加些数据吧. 第二步:建立一个 Flash 4 的动画: 步骤如下:1)建立三个text field,它们是用来显示数据用的. 2)把第一个text field的name设置为Input,它是用来接收输入数据的. 3)另外两个text field分别命名为Known