三角函数
坐标系
圆的相关公式
标准方程式:(x-a)²+(y-b)²=r²
周长: C=2πr (r半径)
面积: S=πr²
半圆周长: C=πr+2r
半圆面积: S=πr²/2
0.5π为90°
1π 为 180°
2π为360°
Math.PI
Math.PI 表示一个圆的周长与直径的比例,约为 3.14159:
Math.PI=π≈3.14159
下面的函数使用 Math.PI 计算给定半径的圆周长:
function calculateCircumference (radius) {
return 2 * Math.PI * radius;
}
calculateCircumference(1); // 6.283185307179586
Math.sin
返回一个数值的正弦值。
Math.sin(x)
Math.sin(0); // 0
Math.sin(1); // 0.8414709848078965
Math.sin(Math.PI / 2); // 1
Math.cos
Math.cos() 函数返回一个数值的余弦值。
Math.cos(x)
Math.cos(0); // 1
Math.cos(1); // 0.5403023058681398
Math.cos(Math.PI); // -1
Math.cos(2 * Math.PI); // 1
Math.tan
Math.tan() 方法返回一个数值的正切值。
Math.tan(x)
x
一个数值,表示一个角(单位:弧度)。
传角度返回正切值
//接收以度为单位的数值,将其转为弧度,然后返回其正切值。
function getTanDeg(deg) {
var rad = deg * Math.PI/180;
return Math.tan(rad);
}
Math.asin
Math.asin() 方法返回一个数值的反正弦(单位为弧度)
Math.asin(x)
x
一个数值
asin 方法接受 -1 到 1 之间的数值作为参数,返回一个介于 -(pi/2)
到 pi/2
弧度的数值。
Math.asin(-2); // NaN
Math.asin(-1); // -1.5707963267948966 (-pi/2)
Math.asin(0); // 0
Math.asin(0.5); // 0.5235987755982989
Math.asin(1); // 1.570796326794897 (pi/2)
Math.asin(2); // NaN
Math.acos
Math.acos() 返回一个数的反余弦值(单位为弧度)
Math.acos(x)
x
一个数值
acos 方法以 -1 到 1 的一个数为参数,返回一个 0 到 pi (弧度)的数值。
Math.acos(-2); // NaN
Math.acos(-1); // 3.141592653589793
Math.acos(0); // 1.5707963267948966
Math.acos(0.5); // 1.0471975511965979
Math.acos(1); // 0
Math.acos(2); // NaN
Math.atan
Math.atan() 函数返回一个数值的反正切(以弧度为单位)
Math.atan(x)
x
一个数值
atan 返回一个 -(pi/2)
到 pi/2
弧度之间的数值。
Math.atan(1); // 0.7853981633974483
Math.atan(0); // 0
Math.atan2
Math.atan2() 返回其参数比值的反正切值。
Math.atan2(y, x)
y, x
数值
atan2 方法返回一个 -pi 到 pi 之间的数值,表示点 (x, y) 对应的偏移角度。
这是一个逆时针角度,以弧度为单位,正X轴和点 (x, y) 与原点连线 之间。
注意此函数接受的参数:先传递 y 坐标,然后是 x 坐标。
Math.atan2(90, 15) // 1.4056476493802699
Math.atan2(15, 90) // 0.16514867741462683
Math.atan2( ±0, -0 ) // ±PI.
Math.atan2( ±0, +0 ) // ±0.
Math.atan2( ±0, -x ) // ±PI for x > 0.
Math.atan2( ±0, x ) // ±0 for x > 0.
Math.atan2( -y, ±0 ) // -PI/2 for y > 0.
Math.atan2( y, ±0 ) // PI/2 for y > 0.
Math.atan2( ±y, -Infinity ) // ±PI for finite y > 0.
Math.atan2( ±y, +Infinity ) // ±0 for finite y > 0.
Math.atan2( ±Infinity, x ) // ±PI/2 for finite x.
Math.atan2( ±Infinity, -Infinity ) // ±3*PI/4.
Math.atan2( ±Infinity, +Infinity ) // ±PI/4.
斜率
已知倾斜角a,斜率k=tan a
已知两个点(x1,y1),(x2,y2)
,
斜率k=(y2-y1)/(x2-x1)
斜率相同则两点在同一直线上
对称点
求点A(m,n)
关于点P(a,b)
的对称点B(x,y)
(m+x)/2=a ,x=2a-m
(n+y)/2=b ,y=2b-n
生成随机数
// 返回一个介于min和max之间的随机数
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
// 返回一个介于min和max之间的整型随机数
function getRandomInt1(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
贝塞尔曲线
三角形公式
等边三角形
高 = (边长/2)^3
边长 = (高开三次根)*2
等腰三角形
(边长^2)*2 = 底边^2