晴明的博客园 GitHub      CodePen      CodeWars     

[canvas] 三角函数

三角函数

普通坐标与canvas坐标是不同的

常用三角函数

在canvas中采用的是弧度制。
θ * Math.PI/180是将角度转成弧度,比如:30° = 30 * π /180 = π / 6
Math.asin(x/R) (弧度值)乘上180/Math.PI是将弧度转成角度。

Math.atan()可以直接通过两个直角边得到角度值,但是会得到两个相同的角度值

使用Math.atan2(dy, dx)可以弥补该问题

函数波形

sin函数波形

//sin函数在[0, 2π]之间的值,非连续的情况下,可以这样估算:

for(var angle=0; angle<Math.PI*2; angle+=0.1){
    console.log(Math.sin(angle)); //打印出角度对应的sin值
}

椭圆

正圆半径在x轴和y轴上的距离是相同的,都是Radius ,而椭圆则是不同的,我们用a, b 表示。

两点之间距离

假设有两个点, a(x1, y1), b(x2, y2)
dx = x2 - x1;
dy = y2 - y1;
distance = Math.sqrt(dx*dx + dy*dy); //勾股定理

弧度

弧度是角的度量单位。(rad)
定义:弧长等于半径的弧,其所对的圆心角为1弧度。

一周的弧度数为2πr/r=2π,360°角=2π弧度,
1弧度约为57.3°,即57°17'44.806'',
1°为π/180弧度,近似值为0.01745弧度,
周角为2π弧度,
平角(即180°角)为π弧度,
直角为π/2弧度。

posted @ 2016-12-14 19:01  晴明桑  阅读(370)  评论(0编辑  收藏  举报