基礎三角函數及應用

來源:互聯網
上載者:User

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基理大師)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.