本页面由 Flash 保存计划 从 Internet Archive 存档还原 · 快照 2006-07-08 · 原址 http://www.flash8.net/teach/4230.htm ← Flash 保存计划

FLASH_3D教程—从头开始

作者:kianxin   类型:闪吧BBS   来源:闪吧

   点击浏览该文件
点击浏览该文件

大家都知道三维的点都有3个坐标,但FLASH只是有二维的坐标,所以要在FLASH里实现“三维”的效果,就需要对点的坐标进行转化,简单的说,就是怎么把三维坐标转换成二维坐标。(其实,这并不是真正的三维,而是一种视觉欺骗,看上去像三维的就这么回事。所以上面三维带引号。)
一、三维坐标系转化成二维坐标系
(1)、坐标的转换
  flash中场景左上角为(0,0),而在数学中是场景中心为(0,0),怎样把它转成数学中的坐标系呢?  FLASH里的坐标视图
x
o
y
 
x=Stage.width/2; // Stage.width是场景的宽;
 y=Stage.height/2; // Stage.height是场景的高;
这样就把原坐标的原点移动了,场景的中心点,不过,Y轴还是向下,为正的。(这在后面做旋转时要注意的。)
按此在新窗口浏览图片
(2)、角度的转换
flash中Math函数里的参数都要用到弧度,所以角度与弧度之间的转换是需要知道的。在flash as中,我们可以通过这样的表达式来进行转换:
hudu=jiaodu*Math.PI/180; / /把角度转换为弧度,公式为:弧度=角度 *3.14/180,3.14为pai
jiaodu=hudu*180/Math.PI; / /把弧度转换为角度,公式为:角度=弧度*180/3.14,3.14为pai
(if (jiaodu<0) { jiaodu = jiaodu+360; }/* 转换后的角度的范围从-180到180, 数学中的角度从0到360,所以小于0时加上360 */)
2、flash中的三维坐标系
  如图3,z轴表示一个物体离屏幕的远近,当物体的z轴位置增加时,物体朝远离屏幕的方向运动,当物体的z值减小时,物体朝接近屏幕的方向运动。
按此在新窗口浏览图片
图3:三维坐标系

按此在新窗口浏览图片
图4:二维与三维的点的关系

3、三维坐标转换成二维坐标
  如图4,已知一个点(x,y,z),利用三角形相似的原理,可以得出下列结论:
  d/(d+z)=y1/y,推出:y1=d*y/(d+z),可在二维平面上来表现空间上的点的位置。进一步把它简化。提出因子d/(d+z),用ratio(比率)表示,这个公式就变为
ratio=d/(d+z);
  y1=ratio*y;
同理可推出
x1=ratio*x;
   责任编辑:uufeng    时间:2005年9月8日

正在加载评论...