三角函数

关于角度的函数,可以运用于和 [角度] 相关的一切计算。

例如我们要将一系列元素布局成跑马灯,或者将一堆图片组合成一个球体,它都需要三角函数的计算。


1弧度的角的定义是弧长等于1个半径的圆心角。半圆的弧(长为PiR)所对的圆心角是平角,因此180度角就是弧度数是Pi的角,在说话的时候常常简单的说:Pi=180度,完整的说法是Pi弧度角等于180度角。


📐 数学公式

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
数学中的正弦和余弦
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
sin0° = 0            cos0° = 1
sin30° = 0.5         cos30° =3 ÷ 2       
sin45° =2 ÷ 2        cos45° =2 ÷ 2
sin60° =3 ÷ 2        cos60° = 0.5
sin90° = 1           cos90° = 0
sin120° = 0.5        cos120° = -0.5
sin135° =2 ÷ 2       cos135° = -2 ÷ 2
sin150° =3 ÷ 2       cos150° = -3 ÷ 2
sin180° = 0          cos180° = -1
sin210° = -0.5       cos210° = -3 ÷ 2
sin225° = -2 ÷ 2      cos225° = -2 ÷ 2
sin240° = -3 ÷ 2      cos240° = -3 ÷ 2
sin270° = -1         cos270° = 0
sin300° = -3 ÷ 2      cos300° = 0.5
sin315° = -2 ÷ 2      cos315° =2 ÷ 2
sin330° = -3 ÷ 2      cos330° =3 ÷ 2
sin360° = 0          cos360° = 1


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
反三角函数公式
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
sin(arcsin(x)) = x
cos(arccos(x)) = x

arcsin(-x)= -arcsinx
arccos(-x)= π-arccosx
arctan(-x)= -arctanx
arccot(-x)= -arccotx

反正弦函数(反三角函数之一)为正弦函数y=sinx(x∈[-½π,½π])的反函数,记作y=arcsinx或siny=x(x∈[-1,1])
原函数的图像和它的反函数的图像关于一三象限角平分线对称。


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
程序中的换算方法
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
sin30° = sin(π ÷ 6) = Math.sin(Math.PI ÷ 6) = 0.49999999999999994 = 0.5

结果类比:
Math.sin(0);            // 0
Math.sin(1);            // 0.8414709848078965
Math.sin(3);            // 0.1411200080598672
...
Math.sin(Math.PI);      // 1.2246467991473532
Math.sin(Math.PI ÷ 2);  // 1


周长 C 和半径 radius 的公式:
C = 2πr = Math.PI * 2 * radius


角度:
360° = 2π = Math.PI * 2


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
圆和三角函数的关系转化
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
一个圆形里面可以存在多个直角三角形,那么已知半径和弧度,就可以换算对边和邻边的长度,可以计算坐标的位置。需要先计算出(知道)弧度和半径、周长。
由公式变化而得: sinA = a ÷ c   cosA = b ÷ c   tanA = a ÷ b  cotA = b ÷ a

a = sinA * c

circleX =  Math.sin( rad ) * radius;
circleZ =  Math.cos( rad ) * radius;



📌 JavaScript

参考代码:index.js

/*
 * 将一个角度转化为目标对象的笛卡尔坐标
 *
 * @param {Number} deg  - 读数值
 * @param {Number} radius  - 半径(其实就是斜边)
 * @returns {Object} 返回一个坐标
 */
export function angle2Coordinates( deg, radius ) {

    /*角度转弧度后才能用于Math三角函数*/
    /* 如何转换?
    (1)360°角 = 2π弧度
    (2)π = Math.PI
    (3)推导出 1个读数值的弧度值 = (Math.PI * 2) / 360
    (4)最后得到公式 (Math.PI / 180) 为1个读数值的弧度值
    */
    const radians = deg * (Math.PI / 180);

    return {
        x: Math.cos(radians) * radius,
        y: Math.sin(radians) * radius
    }
}

测试:test.js

import { angle2Coordinates } from './index';

/* 已知我们想把一个对象布局到圆形中,那么我想根据需要的角度和半径去布局它,转化为坐标即可布局元素 */
console.log(angle2Coordinates(30, 15));

/* 输出:
{x: 12.99038105676658, y: 7.499999999999999}
*/