三角形,的sin cos tan
对于一角来说,对边是a 斜边是c 邻边是b
sin a/c 正弦
cos b/c 余弦
tan a/b 正切
Math中也有以上三个方法,参数是弧度。
弧度=2*Math.PI/360*角度
在js里当一个点需要以特定角度移动一定距离时,
这时需要来算x y 轴上的移动距离。就会动到以上数学了
y轴长度=sin(弧度)*移动距离
//因为sin=对边/斜边 : 对边=sin*长度
x轴长度=cos(弧度)*移动距离
这样就算出来x y 距离的距离就可以得到移动点的位置了
canvas画时钟线的应用:
首先需要算出时分秒针的角度
因为canvas中弧度是水平的x轴向下算起,所以弧度需要-90度的值。
y=Math.sin(angle)*length
x=Math.cos(angule)*length
js中随机数:
随机数一般都是
Math.round(Math.random()*10)
(Math.random()*10).toFixed(2)
但现在要做从小到大循环的数字。
1,2,3,4 1,2,3,4这样的从小到大,再从小到大。
可以在setInterval内使用当前时间来完成。
因为时间动态增加的
但是如何实现从小到大呢。
取余,它会算出一个数对于另一个数的余数。
余数*数可以获取0-1的数。
被除数呢需要动态变,这时时间就可以用上了。
Date.now()%600*600
解析:
时间会一直在增加用它来取600的余数,余数肯定是从0-599 当再加一时也就从0继续开始了。
生成从小到大再从大到小的数
在做canvas中给圆做闪烁时上边的从小到大再从小到大方法用上效果不是很自然。
最好的是从小到大 从大再到小。
js里哪些方法可以做到小大大小呢?
Math.sin(num)
它的返回值
0:0
0.1: 0.09983341664682815
1.60 0.9995736030415051
1.70 0.9916648104524686
3.10 0.04158066243328916
3.20 -0.05837414342758142
6.30 0.016813900484343496
看它的值从小到大返回的结果
值从0到1.6结果是从小到大
1.7以后就是从大到小了
一直到3.1都是小
而3.2以后就是-的值。
结果它的值从0-3.1 结果会是从小到大再从大到小。
所以我们可以得到从0-3的值也就是从小到大再从小到大的值。
由sin来生成小大小的结果。
这里就用上了上边的取余随机数。
它得出来的是0-1可以去*Math.PI再使用sin来得到结果
setInterval(function(){
var a=Date.now();
console.log(Math.sin((a+50)%600/600)*Math.PI);
},30)