当前位置:软件学习 > Flash >>

基础三角函数及应用

1.坐标系:

Flash坐标系与数学坐标系:X轴相同,Y轴相反。

[数学坐标系]
[Flash中的坐标系]

2.角度制与弧度制的转换:

(1)弧度:弧度=角度*PI/180;

(2)角度:角度=弧度*180/PI;

*角度制多用于 ._rotation中

*弧度制多用于 sin(),cos(),atan()... ...

3.正弦、余弦、正切:
1>正弦:Math.sin(n);在Flash中多用其图像性质:


随X增长,Y取值为[0,1,0,-1,0]这个变化是周期性的。   

2>余弦:Math.cos(n);用法基本同上。


随X增长,Y取值为[1,0,-1,0]这个变化是周期性的。

3>正切:Math.atan2(y,x)
多用于求两点间的夹角。


Math.atan2(y,x)与Math.atan(n)功能相同只是返回值有所不同:

atan2(x,y)的返回值为一个数字

    atan(n)的返回值从
-PI/2 ~ PI/2


<<<
以上是一些理论知识,下面来看一些具体的应用实例
>>>
4.正弦实例:

思路:使用sin(n)控制mc的Y轴坐标
步骤1:

   
制作一个球型,存为MC,实例名为"Ball",放入舞台中。
步骤2:
加AS入代码层:
var A =
80;
//设置振幅

var centerY = 150;
//设置显示位置

var n = 0;
//累加变量

onEnterFrame =
function () {

ball._y =
centerY+A*(-1*Math.sin(n*Math.PI/180));
//改变ball的y坐标,呈现正弦震动


n += 10;

};


5.正切实例:

思路:使用tan2(x,y)求夹角,通过得出的夹角改变
mc._rotation。
步骤1:

   
绘制出眼,鼻,嘴作为背景;

   
画一个黑色圆作为眼珠,存为MC,实例名为"Reye",注册点在左中。

   
复制一个Reye,实例名为"Leye"作为另一个眼珠。
步骤2:
加AS入代码层:
Reye.onMouseMove = function()
{

var dx = _xmouse-this._x;

var dy =
_ymouse-this._y;
//获得鼠标与眼球的距离


var theta =
Math.atan2(dy,
dx);
//求夹角(弧度制)

this._rotation =
theta/Math.PI*180;
//转换为角度制


};

Leye.onMouseMove =
Reye.onMouseMove;
//Leye鼠标移动时的函数等于Reye鼠标移动时的函数


6.正弦和余弦综合实例:
1>画圆方法:


用cos(n)作为点x,x点从1~0~-1~0



用sin(n)作为点y,结合点x,[1,0]~[0,1]~[-1,0]~[0,-1]~[1,0]
沿着, X轴=cos(n),
Y轴=sin(n)的路线绘制出圆
1>AS画圆(重要):
思路:1.创建一个空的影片剪辑作为绘图的容器,在该影片剪辑中进行绘图;
   
2.角度(n) 从 0度到360度 递增;
   
3.X坐标为cos(n), Y坐标为sin(n); n
要为弧度制表示;
_root.createEmptyMovieClip("MC",
1);

MC._x = 200;

MC._y =
200;
//建一个空影片剪辑,并放入舞台中部,作为绘线的容器


var R =
60;
//圆的半径
MC.moveTo(R*Math.cos(0),
R*Math.sin(0));
//开始画线的起点

MC.lineStyle(2);

for (n=1; n<360; n++)
{

angle = n*Math.PI/180;

tox =
R*Math.cos(angle);

toy =
R*Math.sin(angle);
//圆的参数方程

MC.lineTo(tox, toy);

}

2>AS画正多边型(重要):
思路:1.多边形内角和等于360度;
   
2.根据边数,确定每个顶点的角度;
   
3.再根据角度确定每个顶点的位置,并连接各顶点。
_root.createEmptyMovieClip("MC", 1);

MC._x = 200;

MC._y = 200;

var R = 50;
//半径

var sides = 5;
//多边型边数

var angle =
(360*Math.PI/180)/sides;
//每等份 =
圆的弧度(360*PI/180)/sides份;

MC.moveTo(R*Math.cos(0),
R*Math.sin(0));
//绘制起点方在第一个角度上

MC.lineStyle(2)

for (n=1; n<=sides; n++)
{

var tox = R*Math.cos(n*angle);

var toy = R*Math.sin(n*angle);

MC.lineTo(tox,
toy);
//两点间连线

}

3>AS画螺旋线方法(阿基米德螺旋线):
思路:
1.利用极坐标知识;
2.阿基米德螺线的极坐标方程:
Ru(极径)=a(偏移量)*θ(极角);
3.可以简单理解为一个半径在不断增长的圆。
_root.createEmptyMovieClip("MC", 1);

MC._x = 200;

MC._y = 200;

var R = 10;
//半径长度

var a = 3;
//偏移量

MC.moveTo(0, 0);
//从圆心点开始绘制

MC.lineStyle(2);

for (n=1; n<360; n++)
{

var angle = a*(n*Math.PI/180);

var tox = angle*R*Math.cos(angle);

var toy = angle*R*Math.sin(angle);
//螺旋线的参数方程


MC.lineTo(tox, toy);

}


Flash 充电: 三角函数
   
三角函数是数学中属于初等函数中的超越函数的一类函数。它们的本质是任意角的集合与一个比值的集合的变量之间的映射。通常的三角函数是在平面直角坐标系中
定义的,其定义域为整个实数域。另一种定义是在直角三角形中,但并不完全。现代数学把它们描述成无穷数列的极限和微分方程的解,将其定义扩展到复数系。
由于三角函数的周期性,它并不具有单值函数意义上的反函数。
三角函数在复数中有较为重要的应用。在物理学中,三角函数也是常用的工具。


基本初等内容

它有六种基本函数(初等基本表示):
函数名 正弦 余弦 正切 余切 正割余割
正弦函数 sinθ=y/r
余弦函数 cosθ=x/r
正切函数 tanθ=y/x
余切函数 cotθ=x/y
正割函数 secθ=r/x
余割函数 cscθ=r/y
以及两个不常用,已趋于被淘汰的函数:

正矢函数 versinθ =1-cosθ

余矢函数 vercosθ =1-sinθ

同角三角函数间的基本关系式:

·平方关系:

   sin^2(α)+cos^2(α)=1

   tan^2(α)+1=sec^2(α)

   cot^2(α)+1=csc^2(α)

·积的关系:

   sinα=tanα*cosα
cosα=cotα*sinα

   tanα=sinα*secα
cotα=cosα*cscα

   secα=tanα*cscα
cscα=secα*cotα

·倒数关系:

   tanα·cotα=1

   sinα·cscα=1

  
cosα·secα=1  

三角函数恒等变形公式:

·两角和与差的三角函数:

cos(α+β)=cosα·cosβ-sinα·sinβ

cos(α-β)=cosα·cosβ+sinα·sinβ

sin(α±β)=sinα·cosβ±cosα·sinβ

tan(α+β)=(tanα+tanβ)/(1-tanα·tanβ)

tan(α-β)=(tanα-tanβ)/(1+tanα·tanβ)

·辅助角公式:

Asinα+Bcosα=(A^2+B^2)^(1/2)sin(α+t),其中

sint=B/(A^2+B^2)^(1/2)

cost=A/(A^2+B^2)^(1/2)

·倍角公式:

sin(2α)=2sinα·cosα

cos(2α)=cos^2(α)-sin^2(α)=2cos^2(α)-1=1-2sin^2(α)

tan(2α)=2tanα/[1-tan^2(α)]

·三倍角公式:

sin3α=3sinα-4sin^3(α)

cos3α=4cos^3(α)-3cosα

·半角公式:

sin^2(α/2)=(1-cosα)/2

cos^2(α/2)=(1+cosα)/2

tan^2(α/2)=(1-cosα)/(1+cosα)

tan(α/2)=sinα/(1+cosα)=(1-cosα)/sinα

·万能公式:

sinα=2tan(α/2)/[1+tan^2(α/2)]

cosα=[1-tan^2(α/2)]/[1+tan^2(α/2)]

tanα=2tan(α/2)/[1-tan^2(α/2)]

·积化和差公式:

sinα·cosβ=(1/2)[sin(α+β)+sin(α-β)]

cosα·sinβ=(1/2)[sin(α+β)-sin(α-β)]

cosα·cosβ=(1/2)[cos(α+β)+cos(α-β)]

sinα·sinβ=-(1/2)[cos(α+β)-cos(α-β)]

·和差化积公式:

sinα+sinβ=2sin[(α+β)/2]cos[(α-β)/2]

sinα-sinβ=2cos[(α+β)/2]sin[(α-β)/2]

cosα+cosβ=2cos[(α+β)/2]cos[(α-β)/2]

cosα-cosβ=-2sin[(α+β)/2]sin[(α-β)/2]

·其他:

sinα+sin(α+2π/n)+sin(α+2π*2/n)+sin(α+2π*3/n)+……+sin[α+2π*(n-1)/n]=0


cosα+cos(α+2π/n)+cos(α+2π*2/n)+cos(α+2π*3/n)+……+cos[α+2π*(n-1)/n]=0
以及

sin^2(α)+sin^2(α-2π/3)+sin^2(α+2π/3)=3/2

tanAtanBtan(A+B)+tanA+tanB-tan(A+B)=0

部分高等内容:
·高等代数中三角函数的指数表示(由泰勒级数易得):

sinx=[e^(ix)-e^(-ix)]/2

cosx=[e^(ix)+e^(-ix)]/2

tanx=[e^(ix)-e^(-ix)]/[^(ix)+e^(-ix)]

泰勒展开有无穷级数,e^z=exp(z)=1+z/1!+z^2/2!+z^3/3!+z^4/4!+…+z^n/n!+…


此时三角函数定义域已推广至整个复数集。

·三角函数作为微分方程的解:

对于微分方程组 y=-y'';y=y'''',有通解Q,可证明

Q=Asinx+Bcosx,因此也可以从此出发定义三角函数。

补充:由相应的指数表示我们可以定义一种类似的函数——双曲函数,其拥有很多与三角函数的类似的性质,二者相映成趣。


·特殊三角函数值

a      30`   
45`   
60`   
90`

sina   1/2  
√2/2  
√3/2     1


cosa √3/2  
√2/2   
1/2   
0

tga
√3/3   
1     
√3   不存在

ctga √3      
1   
√3/3   
0




教程到此结束
QQ:147461195(FL基理易做图)

补充:flash教程,As3.0
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,