资源描述:
《有趣的简易软力绳教程》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、有趣的简易软力绳教程先说明,本教程仅为学习交流之用,任何人不经本人允许不得使用其进行商业用途.大致的最终结果:问题分析,主要的重点在两个方面,一个是动力学模型的建设,一个是如何绘制圆滑的曲线.首先关于曲线,先参照第1个例子,里面的代码很简单.Files/UpLoadfiles/2007/4/20070417213136_jzxue__01.fla.jzxue.Files/Remoteupfile/2007-4/18/20070417213150_jzxue__01.sptyMovieClip("circle_mc",1);this.onEnterFrame=
2、function(){c){clear();lineStyle(0,0x000000,100);moveTo(275,150);curveTo((275+_xmouse)/2,(150+_ymouse)/2+50,_xmouse,_ymouse);}}整个代码很简单,只是用于画一条跟随鼠标的贝塞尔曲线而已.其中最主要起作用的语句为2条:moveTo(275,150);//是画图起点(红点)curveTo((275+_xmouse)/2,(150+_ymouse)/2+50,_xmouse,_ymouse);绘制一条曲线,其中终点坐标为:_xmouse,_ym
3、ouse(蓝点).控制点坐标为:(275+_xmouse)/2,(150+_ymouse)/2+50(黑点).如果你认为你确实已经弄懂了这三个点的关系,可以接着往下看.下面的问题是建立动力学模型.这里建立的是一个基于经典物理学的简要模型,不牵涉微积分什么的.好,打开第两个例子,场景中有1234下一页[感谢阅读这篇文章,..,]3个点:分别是原点,实例名:yuandian.红色中心点,实例名:zhongxindian.蓝色鼠标点,实例名:shubiaodian.绿色Files/UpLoadfiles/2007/4/20070417212136_jzxue__0
4、2.flaFiles/Remoteupfile/2007-4/18/20070417212319_jzxue__02.sptyMovieClip("_mc",1);tx=0;ty=0;ax=0;ay=0;i=7;q=0.81;lenmax=220;r=0.2;pianyi=0;以上全部为参数,暂时先不必理会.this.onEnterFrame=function(){shubiaodian._x=_xmouse;shubiaodian._y=_ymouse;//把鼠标点元件绑在鼠标上,当然你用drag也行,效果一样.//lenx=shubiaodian._x-
5、yuandian._x;//leny=shubiaodian._y-yuandian._y;//len=Math.sqrt(lenx*lenx+leny*leny);//pianyi=(lenmax-len)*r;//if(pianyi<0)pianyi=0;//该部分计算偏移的暂时先不理会ax=((yuandian._x+shubiaodian._x)/2-zhongxindian._x)/i;//此语句是计算中心点在水平方向上的加速度,默认的,中心点应该在原点和鼠标点的中心.所以,用中心点的"目的坐标"减去"实际坐标"再乘上一个系数,就可以得到中心
6、点在水平方向上的加速度.ay=((yuandian._y+shubiaodian._y)/2-zhongxindian._y+pianyi)/i;//在Y值上一样的道理,只不过中心点的坐标会稍微向下偏移,以形成重力的感觉.其中偏移量的计算随后解释.tx+=ax;//计算中心点在水平方向上的速度变化,就是让速度加上加速度.ty+=ay;//同上,纵向上的tx*=q;//让中心点的速度逐渐衰减,以使它出现慢慢停止的效果.你可以试着把q值改为1或0试下.ty*=q;//同上zhongxindian._x+=tx;//让中心点移动,水平方向上移动tx点.zhongx
7、indian._y+=ty;//让中心点移动,垂直方向上移动ty点.c){clear();lineStyle(0,0x000000,100);moveTo(yuandian._x,yuandian._y);lineTo(zhongxindian._x,zhongxindian._y);lineTo(shubiaodian._x,shubiaodian._y);lineTo(yuandian._x,yuandian._y);}//以上画线(直线),很简单,不赘述.}这样一个简单的动力学模型就出来了.但是如果没有偏移量的计算的话,中心的坐标将始终在原点和鼠标点的
8、正中央.所以需要计算一下Y方向上的偏移量.所谓的偏移