| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > Flash特别应用 > 文章正文 用户登录
如何加入透明Flas
为新浪博客添加fl
flashget下载联盟
265联盟:“Flash
新易网络提供100M
龙太极/100m/asp/
无限网络提供50M 
霞光科技50M/Htm/
苏能科技100M/FTP
悠博科技50M/FTP/

flash画线之经典教程--数学运用           

flash画线之经典教程--数学运用

作者:佚名 来源:不详 更新:2007-1-13 21:01:19 错误报告 我要投稿

开头语:mm公司的flashmx与以往最突出的就是新增的画线功能,虽然2004已经很优秀了,但我们也不能忘了他的前辈的   功劳。
                  好了,废话少说。其实编程语言最重要的就是和实际联系起来,运用数学模型和物理模型实现亮丽的效果(前提是你的电脑配置足够高,不要死机。)。上回就用了数学模型实现了滚动文本的特效,大家有兴趣的可以自己看看。
                  你有没有为实现一个准确画圆而绞尽脑汁?你是否尝试过用curveTo而未达到理想中的效果?这回我就向你介绍一个利用高等数学中的极限实现的面积求算效果。
(注:微积分大一高等数学最开始就已经学了)
                  首先介绍一点微积分的知识:
                  对于简单图形面积运算正方形,圆形大家都会,但是,不规则图形你会吗?前提是你知道函数表达式y=f(x)。
按此在新窗口浏览图片
                  好了开始正题吧!我们对比一下利用curveTo和极限画出的圆。



点击开新窗口欣赏该FLASH动画![全屏欣赏]

点击开新窗口欣赏该FLASH动画![全屏欣赏]

                     不一样吧!那简直是一定的。好了开始吧!如图所示:
圆上坐标为x=r*sin(a),   y=r*cos(a)   ,利用角度的堤加实现画圆的效果,递加我们用的0.01的步长。


主体as为:
MovieClip.prototype.drawCircle   =   function(x,   y,   radius)   {//第一函数
   this.moveTo(x+radius,   y);//以(x,y)为圆心,radius为半径画圆
   var   jiaodu   =   0;
   while   (jiaodu<2*Math.PI)   {
      jiaodu+=   0.01;//角度递加0.01
      this.lineTo(x+Math.cos(radian)*radius,   y+Math.sin(radian)*radius);//中心坐标加上直角边长度即为坐标值
   }
};
this.lineStyle(0);
this.drawCircle(200,   200,   100);//调用函数
按此在新窗口浏览图片按此在新窗口浏览图片按此在新窗口浏览图片

               其实熟悉初等数学的人都知道,利用极坐标就不用那么麻烦了
               一些方程
               圆的极坐标:   x=rsin(a)
                                                   y=rcos(a);               

               椭圆极坐标:x=Asin(a)
                                                   y=Bcos(a);//这里我就不再说了
               
               阿基米德螺线方程:
                                                p=a;//a为角度
               关于阿基米德螺线我们用:
MovieClip.prototype.drawtuo   =   function(cx,   cy,   n,   r)   {
   this.moveTo(cx,   cy);
   var   radian   =   0;
   while   (radian<2*n*Math.PI)   {//需要旋转的角度,就是一共几个圈
      radian   +=   0.01;//角度递加,两个点的角度距离,可以控制大小
太大了死机我可不管:)
      this.lineTo(cx+Math.cos(radian)*radian*r,   cy+Math.sin(radian)*radian*r);//r其实就是控制螺线的大小
   }
};
this.lineStyle(0);
this.drawtuo(200,   200,   20,   4);


文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。