手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网页制作>Flash>列表

Flash实例:“随机树”生成

来源:互联网 作者:west263.com 时间:2008-04-02
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  用程式随机生成树冠,说明一下,元件“树”里的dp值控制树枝生长的深度,越高的话则分的越多,但请注意,dp超过13就有可能造成FLASH运行缓慢。

  效果:

  

  

  


  我解释一些代码的用处,以“右叉”的最后一帧代码来解释。

  

stop();

  if(dp>0){//dp用来控制树枝的生长,当dp<0的时候,树枝将不在分裂生长。

  //以下是正上方新树枝的代码

  k=random(4) 1;//k用来选择树形,分别是直形,左分形,右分形和中分行。

  _parent.attachMovie("sz_0" k,"sz" _parent.dp,_parent.dp);//生成一个新的树枝。

  lik=_parent["sz" _parent.dp];//用LIK锁定这个树枝,方便以后控制

  rp=this._rotation 0;//rp是新的树枝的根坐标(黄点)相对于现在这个树枝根坐标(蓝点)的角度,此数值影响到将要新生成的新树枝的坐标。这里是以极坐标的角度来考虑的,因为该树枝的第一个点在正上方,所以修正值是0。

  lp=62;//在rp这个方向上,新树枝根坐标的距离。

  _parent.dp ;//深度控制,大家能够不用考虑

  lik._x=this._x lp*Math.sin(rp/180*Math.PI)*scal/100;

  lik._y=this._y-lp*Math.cos(rp/180*Math.PI)*scal/100;

  //以上算式计算的是新树枝的根坐标,具体意思请参考极坐标和直角坐标换算的方式。里面的scal是本树枝的缩放度。他会对坐标产生影响。

  lik.scal=this.scal*_parent.jian;//新树枝的缩放度要比当前树枝的缩放度小一些

  lik._xscale=lik.scal;

  lik._yscale=lik.scal;

  lik._rotation=rp random(30)-15;;//新树枝的角度是当前树枝的角度向左右各15度随机摆动。(就是-15到 15度)

  lik.dp=this.dp-1;//新树枝的生长度-1;

  //以下是右侧新树枝的代码

  k=random(4) 1;

  _parent.attachMovie("sz_0" k,"sz" _parent.dp,_parent.dp);

  lik=_parent["sz" _parent.dp];

  rp=this._rotation 20;//注意20度角度是这个新树枝的极坐标角度。

  lp=52;//52是距离

  _parent.dp ;

  lik._x=this._x lp*Math.sin(rp/180*Math.PI)*scal/100;

  lik._y=this._y-lp*Math.cos(rp/180*Math.PI)*scal/100;

  lik.scal=this.scal*_parent.jian;

  lik._xscale=lik.scal;

  lik._yscale=lik.scal;

  lik._rotation=rp random(30) 5;;//角度会向右偏一些,所以是当前角度增加5到35之间

  lik.dp=this.dp-1;

  }

  Flash实例:“随机树”生成

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!