选择显示字体大小

数学对象的应用

一个基本的旋转效果:

flash/index4//img_flash_ddvip/200445161225198.swf" width="550" height="400" pluginspage=http://www.macromedia.com/shockwave/download/index.cgi?p1_prod_version=shockwaveflash type=application/x-shockwave-flash quality=high>

学习as有一段时间了,最近越来越感觉到数学对象在脚本中的重要性,不仅在画线问题上必须用到这些函数,在一些比较普遍的物体绕圆形或者椭圆旋转的问题中也广泛用到数学对象。因为旋转问题已经成为实现效果最常见的问题之一,而且也经常遇到一些朋友询问这方面的问题,结合有些现有的材料,加上自己的想法大体总结一下,希望对大家有用。
言归正传,作为一门编程语言,进行数学计算是必不可少的。在数学计算中经常会使用到数学函数,如取绝对值、开方、取整、求三角函数值等,还有一种重要的函数是随机函数。as将所有这些与数学有关的方法、常数、三角函数以及随机数都集中到一个对象里面——math对象。
下面先按顺序简要讲解一下数学对象的基础知识
math.abs(数字或表达式);
就是用来计算一个数的绝对值,即一个数去掉正负符号后的值。其用法如下:
x=math.abs(-1);或者x=math.abs(x1-x2);
math.ceil方法取比一个浮点数大且最接近的整数。//ceil是天花板也就是上面的意思
例如:trace(math.ceil(1.1));输出 2
math.floor方法取比一个浮点数小且最接近的整数。//floor是地板也就是下面的意思
例如:trace(math.floor(1.1));输出1
math.min方法取两个数中较小的一个数,math.max方法取两个数中较大的一个数,
例如:trace(math.min(2, 1));输出1,而trace(math.max(2, 1));输出2。
math.pow方法用来计算一个数的乘方,它包含两个参数,第1个参数是底数(要乘方的数),第2个参数是幂(乘方数)。
例如:要计算3的平方:trace(math.pow(3, 2));
除了用math.pow计算一个数的开方,还可以使用math.sqrt计算一个数的平方根,
例如计算16的平方根:
trace(math.sqrt(16));将输出4。等同于trace(math.pow(16, 1/2));
数学对象的常数有以下几个:
math.pi:圆周率(大约为3.141593)。
math.sqrt1_2:1/2的平方根的倒数(大约为0.707107)。
math.sqrt2:2的平方根(大约为1.414214)。
math.e:欧拉(euler)常数,自然对数的底(大约为2.718282)。
math.ln2:2的自然对数(大约为0.693147)。
math.ln10:10的自然对数(大约为2.302585)。
math.log2e:e的以2为底的对数(大约为1.442695)。
math.log10e:e的以10为底的对数(大约为0.434294)。
其中math.pi用得较多,在很多画线效果以及旋转效果要用到这个常数
如下面的脚本将弧度值arcdegree转换为角度值angledegree:
angledegree = arcdegree*(180/math.pi);
三角函数
数学对象中的三角函数有:
math.sin:正弦
math.cos:余弦
math.tan:正切
math.asin:反正弦
math.acos:反余弦
math.atan:反正切
math.atan2:从x坐标轴到点的角度
三角函数在脚本中有着举足轻重的地位,它们在制作一些特效动画时比如影片剪辑绕一个圆形或者椭圆旋转等效果的时候将发挥重要的作用。
在程序语言中通常以x和y标记位置,但是在一个圆周上使用x和y来标记位置并不是很容 易。三角函数在处理与圆周相关的位置参数时很有效。如用某个圆的圆心位置为(x0,y0) ,半径为r,可以用y0+r*math.sin(0)表示该圆水平直径右端点的纵坐标,x0+r*math.cos (0)表示该圆水平直径右端点的横坐标。
根据上面的原理,下面我们做一个小例子,让一个影片剪辑绕着一个圆形旋转。
主要步骤是:
1、新建文件,然后创建一影片元件,在影片元件中随便做一个物体或者物体动作的效果。
2、回到场景中,按f11,将影片剪辑拖到场景中,选中,在动作面板中写上下面代码:
onclipevent (load) {//影片载入的时候初始化一些变量
i = 0;
r = 150;//运动轨道的半径
x0 = 275;
y0 = 200;//确定影片绕着运动的圆形的圆心坐标
}
onclipevent (enterframe) {//逐桢执行动作
i += 10;//角度自加
this._x = x0+r*math.cos(i/(180/math.pi));
this._y = y0+r*math.sin(i/(180/math.pi));//设置影片的xy坐标,让影片在圆形轨道上运动
}
3、ctrl+enter测试效果。
当然,你也可以在多个影片中加入上面的程序,方法是分别选中影片,加入脚本即可。另外,你也可以把旋转的影片再做的复杂点,这样就有比较好的效果。一些很眩的效果其实就是由这样的一些基本效果组合而成的,基本原理明白了以后,再加上个人的创意就会有好的效果产生。 今天先写到这里吧,下次想起来更多的内容再写,如果有什么不合理的地方,欢迎大家提出,一起探讨,共同进步,谢谢先……
再帖两个旋转效果,

flash/index4//img_flash_ddvip/20044516183940.swf" width="550" height="400" pluginspage=http://www.macromedia.com/shockwave/download/index.cgi?p1_prod_version=shockwaveflash type=application/x-shockwave-flash quality=high>

flash/index4//img_flash_ddvip/200445161915168.swf" width="550" height="400" pluginspage=http://www.macromedia.com/shockwave/download/index.cgi?p1_prod_version=shockwaveflash type=application/x-shockwave-flash quality=high>

上面三个效果的原文件:后面两个就是多加了几个影片而已,代码都是类似的,几个影片的旋转轨道半径、旋转速度都做了一些改变

点这里下载源文件

点这里下载源文件

点这里下载源文件   


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons