三角函数在高中时就已经学过,不过相信不少小伙伴已经把这些知识还给数学老师了。没关系,现在我来带大家慢慢捡起来,以后你们还给我就行。

在Math对象中,用于三角函数操作的常用方法如下表所示。

Math对象中的三角函数方法
方法 说明
sin(x) 正弦
cos(x) 余弦
tan(x) 正切
asin(x) 反正弦
acos(x) 反余弦
atan(x) 反正切
atan2(y, x) 反正切(注意y、x顺序)

x表示角度值,用弧度来表示,常用形式为度数*Math.PI/180,这一点我们之前说过了。对于上表的三角函数方法,有2点需要跟大家说明一下的。

  • (1)atan2(y, x)跟atan(x)是不一样的,atan2(y, x)能够精确判断角度对应哪一个角,而atan(x)不能。因此在高级动画开发时,我们大多数用的是atan2(y, x),基本用不到atan(x)。
  • (2)反三角函数用得很少(除了atan2()),一般都是用三角函数,常用的有:sin()、cos()和atan2()。

举例:

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script> document.write("sin30°:" + Math.sin(30 * Math.PI / 180) + "<br/>"); document.write("cos60°:" + Math.cos(60 * Math.PI / 180) + "<br/>"); document.write("tan45°:" + Math.tan(45 * Math.PI / 180)); </script> </head> <body> </body> </html>

浏览器预览效果如下图所示。

分析:

咦,sin30°不是等于0.5么?为什么会出现上面这种结果呢?其实,这是因为JavaScript计算会有一定的精度,但是误差非常小,可以忽略不计。

那到底这些三角函数有啥用啊?!现在我们是用不上的,不过这些却是高级动画开发的基础。就像你学数学,不都是一开始先学一下运算公式,然后到后面才知道用在哪些地方的嘛。当然这本书只是仅仅是带大家入门而已,对于三角函数在动画开发中的具体应用,可以看看本系列图书中的《从0到1:HTML5 Canvas动画开发》。