三角函数
关于角度的函数,可以运用于和 [角度] 相关的一切计算。
例如我们要将一系列元素布局成跑马灯,或者将一堆图片组合成一个球体,它都需要三角函数的计算。
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} */