Flash实例:“随机树”生成
2008-04-02 11:06:23来源:互联网 阅读 ()
用程式随机生成树冠,说明一下,元件“树”里的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;
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: Flash3d效果出色实例
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash