标签为 Math 的存档

as入门之恶补数学(四)-看到弧度你不必糊涂

有些朋友说,看到弧度我就晕——糊涂。其实这是因为我们对它,还不太熟悉、理解的缘故。以前我们也常说:看到AS我就晕。通过学习对AS比较熟悉、理解了,也就不那么晕了。为此我想谈谈有关弧度的问题。也许能对有些朋友有一点帮助。      一、角的两种单位“ 弧度”和“度”是度量角大小的两种不同的单位。就像“米”和“市尺”是度量长度大小的两种不同的单位一样。  在flash里规定:在旋转角度(rotation)里的角,以“度”为单位;而在三角函数里的角要以“弧度”为单位。这个规定是我们首先要记住的!!!例如:rotation2--是旋转“2度”;sin(π/2)--是大小为“π/2弧度”的角的正弦。       二、弧度的定义     所谓“弧度的定义”就是说,1弧度的角大小是怎样规定的?     我们知道“度”的定义是,“两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆周长的360分之一时,两条射线的夹角的大小为1度。(如图1)        那么,弧度又是怎样定义的呢? 弧度的定义是:两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆的半径时,两条射线的夹角大小为1弧度。(如图2)       比较一下,度和弧度的这两个定义非常相似。它们的区别,仅在于角所对的弧长大小不同。度的是等于圆周长的360分之一,而弧度的是等于半径。       简单的说,弧度的定义是,当角所对的弧长等于半径时,角的大小为1弧度。角所对的弧长是半径的几倍,那么角的大小就是几弧度。它们的关系可用下式表示和计算:    角(弧度)=弧长/半径圆的周长是半径的 2π倍,所以一个周角(360度)是 2π弧度。半圆的长度是半径的 π倍,所以一个平角(180度)是 π弧度。    三、度跟弧度之间的换算    据上所述,一个平角是 π 弧度。即    180度=π弧度由此可知:    1度=π/180 弧度 ( ≈0.017453弧度 )因此,得到 把度化成弧度的公式:    弧度=度×π/180 例如:      90°=90×π/180 =π/2 弧度      60°=60×π/180 =π/3 弧度      45°=45×π/180 =π/4 弧度      30°=30×π/180 =π/6 …

  • No Comments , 30 次阅读 Hits
  • 标签:ActionScript, Math, 弧度, 数学
  • as入门之恶补数学(三)

    我们都知道,横波是一种正弦波,那么我们就要模拟出来一个正弦的波的形状.下面说一下它的制作过程及原理.原理:使用正弦函数控制每个小球在竖直方向的运动,用复制函数来复制相同的小球在不同的水平位置.制作过程:1、先做一个小球,我们可以用线性渐变,做一个有一定立体感的小球。转换为mc2、新建一个mc,命名为ss,把刚才做好的小球mc拖入场景,调整它的位置到正中间。在小球mc上加上如下代码:onClipEvent(load){ //小球载入时PI=math.PI //定义数学PI为数学PI}onClipEvent(enterFrame){ //进入帧时_y=-50*math.sin(t*PI/20) //设定小球的y坐标随着角度的变化而变化,实际就是控制它的y坐标在-50到50之间变化t++//角度递增}//这样实现的效果是,小球在初始的位置开始,以这个点为平衡位置,上下不停的往复运动.3、回到主场景,建立一个坐标系,记下坐标系原点的位置,也就是两个轴交点的坐标。4、把mc ss拖入主场景,取实例名为ss,把ss放在坐标轴的原点,也就是那个交点上。如果无法调整好,可以通过坐标来设定。5、在第一帧上写下如下代码:i=1       //定义复制的初始值onenterframe=function(){ //进入帧时if (i<60){       //复制小球的个数为60个duplicateMovieClip("ss","ss"+i,i); //复制         setProperty("ss"+i,_x,ss._x+8*i); //设置每个小球的位置依次递增         }i++; //递加}//关于复制函数,在这里我们不作讨论.好了,大功告成。还等什么,ctrl+enter测试吧,看看做的怎么样~~~后记,当然,你也可以加上一些控制按钮,来控制它的播放,自己试一试吧~~3、余弦函数余弦函数和正弦函数差不多,我们来看一下:余弦在数学中是这样来定义的,在直角三角形中,角θ的余弦等于它的邻边和斜边之比。sinθ=邻边/斜边在我们的直角三角形中,公式可以修改为:sinθ=a/c在数学中,它和正弦一样,也有很多应用。(1)、关于它的取值。在数学中,θ是一个角度值,所以我们同样会遇到cos(30),cos(60)等等。而它的计算结果是一个数值,是一个-1<=cosθ<=1大于等于负一而小于等于正一的值。这个值在不同的角度范围有时为正,有时为负,取值如下:0度<=θ<=90度 和 270度<=θ<=360度         sinθ>=090度<=θ<=270度        sinθ<=0还是各占半个周期,半个周期为正,半个周期为负。这样我们同样可以利用它来控制一个量在一定的范围内来回变化,而不会超出这个返回。这个在这个函数的图像中也会体现出来。(2)、关于它的周期性。三角函数都有周期性。正弦和余弦的周期都是360度,也就是2π。以它为周期,循环变化。也就是经过360度,结果重复一次。(3)、在这里我们提一下他们的变化趋势。正弦函数和余弦函数是周期性的函数,在数学中他们的单调性(也就是变化规律),不是单调递增或者单调递减,而是在不同的范围内是不相同的。我们来具体看一下:正弦函数:0度<=θ<=90度        递增 而且是增加的越来越慢90度<=θ<=180度        递减 而且是减少的越来越快180度<=θ<=270度        递增 而且是增加的越来越慢(注意这里指的是数值上的增加,因为在这个范围,结果是一个负值)270度<=θ<=360度        递减 而且是减少的越来越快(同样这里指的也是数值上的减少)余弦函数:0度<=θ<=90度        递减 而且是减少的越来越快90度<=θ<=180度        递增 而且是增加的越来越慢(同样这里指的是数值上的增加)180度<=θ<=270度        递减 而且是减少的越来越快(同样这里指的是数值上的减少)270度<=θ<=360度        递增 而且是增加的越来越慢(同样这里指的是数值上的增加)从上面我们可以看出,作为正弦和余弦函数,它们的单调区间(范围)是在一个确定的范围之内。而且他们的单调变化也是有一定的特点,利用这一点,我们可以来设置一些mc运动的缓动。在as中关于余弦函数Math.cos()在as中计算角度的正弦的语法很简单。Math.cos(theta)变量theta是用弧度表示的一个角。下面是一个简单的测试。x=Math.cos(0)trace(x)//输出1x=Math.cos(Math.PI) trace(x)//输出-1x=90*Math.PI/180 …

  • No Comments , 19 次阅读 Hits
  • 标签:ActionScript, Math, 弧度, 数学
  • as入门之恶补数学(二)

    在学习三角函数之前,我们先来了解一个概念---弧度在日常生活中我们使用的度量角度的单位是度。一个圆周是360度,但是这个数字是任意规定的。而弧度单位是数学家们定义的测量角度的标准公制单位。弧度是基于π定义的,π是圆的一种固有属性。计算机编程语言通常在处理角度时都以弧度为单位。flash as的内置Math类,它在计算时都是以弧度为单位。弧度的定义如下:两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆的半径时,两条射线的夹角的弧度为1。从下面一个图示我们来看一下:在这个图中,夹角θ的弧度可以使用这个公式来计算:弧长为s,半径为l,则夹角θ的弧度值就是θ=s/l。π是一个常量,在flash的as中,用Math.PI来定义,PI的值为3.1415…..我们可以测试一下:p=Math.PItrace(p)//输出为:3.14159265358979那么。如何将度转化为弧度呢?基本的关系是π弧度等于180度比例为π:180。因此2π弧度就等于360度,也就是一个圆周。转换的关系式为:弧度=度×π/180在flash as中,我们可以通过这样的函数来进行转换:function dzhd(angel){       //angel为一个度表示的角度,自定义一个函数dzhdreturn angel*(Math.PI/180)}我们可以来测试一下这个函数:function dzhd(angel){return angel*(Math.PI/180)}x=dzhd(180)trace(x)//输出为3.14159265358979,也就是pi当然,我们在使用的过程中不一定非要用函数来进行转换,我们可以直接用一个表达式来进行转换,同样是可以的。比如把一个角度angel转换为一个弧度hudu值,可以用下面来表示hudu=angel*(Math.PI)/180测试一下:angel=180hudu=angel*(Math.PI/180)trace(hudu)//输出为3.14159265358979,也就是pi同样,我们也可以把弧度转换为度。弧度值乘以180/π得到角度:自定义函数:function hdzd(hudu){return hudu*(180/Math.PI)}测试:function hdzd(hudu){return hudu*(180/Math.PI)}x=hdzd(1)trace(x)//输出为57.2957795130823,实际上1弧度对应57.3度。同样,我们也可以直接用一个表达式来转换而不用函数。angel=hudu*(180/Math.PI)测试:hudu=1angel=hudu*(180/Math.PI)trace(angel)//同样输出为57.2957795130823,实际上1弧度对应57.3度。10、三角函数既然说到三角函数,我们还是要从最基本的做起。我们的三角函数,最初是在直角三角形中形成的,来看一下这个三角形。直角三角形实际上就是其中的一个角是90度的三角形,也就是有一个角是直角。它的直角处用一个小的正方形来标识。它的三条边,直角边用a、b标记,最长的一边c称为斜边。整个现代文明可以说都是建立在三角形的基础之上的。直角三角形中三条边和三个角之间的关系是as程序员必备的基础知识。1、勾股定理这是一个很远古的公式,可能我们很早就已经了解过了。a的平方加上b的平方等于c的平方。那么,如果我们想计算c的值,对该方程的两边求平方根就可以了。对于这个定理,大家先有一个基本的认识,等我们来介绍具体在flash场景中使用的时候,我们再具体的来说一个它的应用。2、正弦函数:正弦在数学中是这样来定义的,在直角三角形中,角θ的正弦等于它的对边和斜边之比。sinθ=对边/斜边在我们的三角形中,公式可以修改为:sinθ=b/c在数学中,关于这个函数有很多计算的项目和应用。我们在这里给大家提两点需要大家注意:(1)、关于它的取值。在数学中,θ是一个角度值,所以我们会遇到sin(30),sin(60)等等。而它的计算结果是一个数值,是一个-1<=sinθ<=1大于等于负一而小于等于正一的值。这个值在不同的角度范围有时为正,有时为负,取值如下:0度<=θ<=180度         sinθ>=0180度<=θ<=360度 sinθ<=0这样我们可以利用它来控制一个量在一定的范围内来回变化,而不会超出这个返回。这个在这个函数的图像中也会体现出来。(2)、关于它的周期性。三角函数都有周期性。正弦和余弦的周期都是360度,也就是2π。以它为周期,循环变化。也就是经过360度,结果重复一次。在as中关于正弦函数Math.sin()在as中计算角度的正弦的语法很简单。Math.sin(theta)变量theta是用弧度表示的一个角。下面是一个简单的测试。x=Math.sin(0)trace(x)//输出0x=Math.sin(Math.PI)trace(x)//输出1.22460635382238e-16       这是因为浮点数是以二进制格式存储的,因此会有一定的误差。这是一个非常接近于0的值x=90*Math.PI/180 //把90度转换为弧度值x=Math.sin(x)trace(x)//输出为1x=Math.sin(90)//之间计算数字90的正弦值trace(x)//输出0.893996663600558//从这里可以看出,flash as接受的是一个弧度值,如果是一个数字,则as会认为它是一个弧度来进行计算下面是使用flash的绘图函数,绘制一个正弦函数的图代码如下,加到第一帧就可以了//使用绘图函数,绘制一个正弦函数的图像。x0=50 //定义开始绘制的位置。y0=200a=100//定义一个初始的振幅,也就是扩大一个,不然sinθ的值小于1,很难看出来。//我们设计一个动态绘制的过程。du=0//定义开始绘制的角度_root.moveTo(x0,y0)       //绘制的初始位置x=x0 //定义开始绘制的水平位置_root.onEnterFrame=function(){ //进入帧时,开始绘制_root.lineStyle(3,0×00ff00,100)       //绘制格式hudu=Math.PI*du/180 //把角度转换为弧度x=x+0.5 //水平方向每隔0.5象素,绘制一次du++ //角度递加,每次加一度//trace(du),你可以测试一下角度的变化y=y0-a*Math.sin(hudu)       //绘制的y坐标.在这里为甚么用y0减去这个三角函数值呢?因为三角函数计算出来在小于180度时为一个正值而对于flash的场景来说,上边数值小,下面数值大,为了和数学上的函数图像适应,所以减去._root.lineTo(x,y) //绘制if(du==720){ //如果角度增加到720度,也就是两个循环,重新开始绘制       clear() //清屏       x=x0       //初始化位置       _root.moveTo(x0,y0)       …

  • No Comments , 20 次阅读 Hits
  • 标签:ActionScript, Math, 弧度, 数学
  • 最近总用一些朋友问起一些数学公式,说这些内容不会,所以在这里开一个基础教程,希望能够对大家的学习提供帮助.在flash中,Math类是一个非常常用的类,通过数学计算,可以实现很多非常美妙的效果,我们在这里从最基础的学起,补一补数学知识.我们先来看看flash中提供的Math类吧:Math.abs()          计算绝对值。Math.acos()        计算反余弦值。Math.asin()        计算反正弦值。Math.atan() 计算反正切值。Math.atan2()         计算从 x 坐标轴到点的角度。Math.ceil()        将数字向上舍入为最接近的整数。Math.cos()        计算余弦值。Math.exp() 计算指数值。Math.floor()        将数字向下舍入为最接近的整数。Math.log()        计算自然对数。Math.max() 返回两个整数中较大的一个。Math.min() 返回两个整数中较小的一个。Math.pow() 计算 x 的 y 次方。Math.random() 返回一个 0.0 与 1.0 之间的伪随机数。Math.round() 四舍五入为最接近的整数。Math.sin() 计算正弦值。Math.sqrt() 计算平方根。Math.tan() 计算正切值。下面我们就这18个基本的函数,进行具体的说明~!先说几个简单的,把简单的处理掉~!1、Math.abs()        计算绝对值公式,那么什么是绝对值呢?这个应该问题不大,我们都知道数字有正数和负数,那么我们计算的结果也就有正有负,通过这个函数,把负数值转换为正数值,而正数值不变.我们可以通过下面语句来验证一下:x=5y=-5x=Math.abs(x)trace(x)//输出 5y=Math.abs(y)trace(y)//输出 52、Math.ceil() 取得指定的数字或表达式的上限的整数值,也就是比指定的数字大的那个整数值。通过下面一段代码可以验证:x=5.45x=Math.ceil(x)trace(x)         //输出6注意,对于负数,是绝对值越大,数值越小,所以用Math.ceil()取得的整数值是那一个比数字绝对值小的那个负整数。下面代码可以说明:x=-5.45x=Math.ceil(x)trace(x)//输出-53、Math.floor()这个函数和Math.ceil()恰好相反,获得一个数字或表达式的一个下限的整数值,也就获取的整数值是比指定的数字小的那一个整数。注意:负数的取法和Math.ceil()的取法一样,只是取得一个绝对值大的一个整数。下面可以验证:x=5.45x=Math.floor(x)trace(x)//输出5x=-5.45x=Math.floor(x)trace(x)//输出-64、Math.round()这个函数所用的方法应该是我们最熟悉的了,四舍五入,取得和一个表达式或者数字最接近的一个整数。我们用一下代码验证一下~!x=5.45x=Math.round(x)trace(x)//输出5x=-5.45x=Math.round(x)trace(x)//输出-5x=-5.55x=Math.round(x)trace(x)//输出-6但是在这里发现一个要大家注意的问题,如果x=5.50x=Math.round(x)trace(x)//输出6但是如果x=-5.50x=-5.50x=Math.round(x)trace(x)//输出-5          需要注意一下~!5、Math.random()         随机函数,获取一个介于0和1之间的一个数字 …

  • No Comments , 25 次阅读 Hits
  • 标签:ActionScript, Math, 弧度, 数学