基础三角函数及应用
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