緊接上一篇:三角函數:正弦餘弦定理及應用
這篇我們推導三角函數中加減法與和差化積公式。
1.加減法公式,加減法公式主要針對「普通」角變「特殊」角,這個意義就在於,我們知道一些特殊角度的值,比如:
sin30° = 1/2,sin60° = √3/2 ,sin45° = √2/2
那麼sin75° = sin(45°+30°) = sin45°+sin30°?
亦或者sin15° = sin(45°-30°) = sin45° - sin30°?
這裡到底能不能直接用加減法去做運算呢,我們來通過繪畫的方式展現到底sin75°或者說sin(α+β)度和sinα與sinβ的關係,如下圖:
上面我們建立輔助用的單位圓,然後根據餘弦定理推導了最簡單的cos(α-β) = cosαcosβ+sinαsinβ,接下來繼續推導,如下圖:
這裡我們用γ = -β去做替換,就能得到cos(α+γ) = cosαcosγ - sinαsinγ
既然cos推導完畢,接下來我們推到sin,前面我們推過:
sinα = -cos(90°+α)
cosα = sin(90°+α)
接下來我們繼續用代換法,如下圖:
上面我們繼續使用γ = 90°+α帶入,然後利用直角三角形內角公式可以得出:
sin(α+β) = sinαcosβ + cosαsinβ
已經推導到這裡了,那麼最後的sin(α-β) = ?,這就簡單了,只需要帶入γ = -β就能得出:
sin(α-(-β)) = sinαcos(-(-β)) - cosαsin(-(-β))
因為γ = -β
所以
sin(α-γ) = sinαcos(-γ)-cosαsin(-γ)
sin(α-γ) = sinαcosγ + cosαsinγ
推導到這裡
我們就知道sin75° = sin30°cos45° + cos30°sin45°
最後我們就用程序測試一下唄,如圖:
using System.Collections;using System.Collections.Generic;using UnityEngine; public class AngleMathFunc : MonoBehaviour{ void Start() { int angle = 75; float cosangle = Mathf.Cos(30) * Mathf.Cos(45) - Mathf.Sin(30) * Mathf.Sin(45); float apicosangle = Mathf.Cos(angle);#if UNITY_EDITOR Debug.LogFormat("cosangle = {0} apicosangle = {1}", cosangle, apicosangle);#endif float sinangle = Mathf.Sin(30) * Mathf.Cos(45) + Mathf.Cos(30) * Mathf.Sin(45); float apisinangle = Mathf.Sin(angle);#if UNITY_EDITOR Debug.LogFormat("sinangle = {0} apisinangle = {1}", sinangle, apisinangle);#endif } }
可以看出公式計算結果和函數api計算結果是一樣的
-
作者:羊羊2035
來源:CSDN
原文:https://blog.csdn.net/yinhun2012/article/details/79402593
版權聲明:本文為博主原創文章,轉載請附上博文連結!
標籤:圖形學基礎三角函數