晴明的博客园 GitHub      CodePen      CodeWars     

[cs] 图形相关 公式

三角函数

坐标系

圆的相关公式

    标准方程式:(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

posted @ 2016-11-04 18:02  晴明桑  阅读(600)  评论(0编辑  收藏  举报