目录
前言
在Android自定义控件中,一定会遇到与数学三角函数打交道的地方。例如今天我需要写一个环形的Layout自定义布局,就需要了解单位圆中的三角函数的具体实现。
单位圆定义
三角函数也可以依据直角坐标系xOy中半径为1,圆心为原点O的单位圆来定义。给定一个角度a,设A(1, 0)为起始点,如果a>0,则将OA逆时针转动,如果a<0,则讲OA顺时针移动,直到转过的角度等于a为止。设最终点A转到的位置为P(x,y),那么:
- 正弦:sina = y
- 余弦:cosa = x
这个定义和坐标系的定义类似,但是角度a可以是任何的数值。对于大于360度或者小于-360度的角度,可以认为是逆时针(顺时针)旋转了不止一圈。而多转或少转了整数圈是不会影响到三角函数取值的。
此外,还有一些常用的角度计算公式如下:
sin(x + y) = sinxcosy + cosxsiny
sin(x - y) = sinxcosy - cosxsiny
cos(x + y) = cosxcosy - sinxsiny
cos(x - y) = cosxcosy + sinxsiny
sin(π + x) = sinx
cos(π + x) = -cosx
sin(2π + x) = sinx
cos(2π + x) = cosx
sin(π - x) = sinx
cos(π - x) = -cosx
sin(2π - x) = -sinx
cos(2π - x) = -cosx
sin(π/2 - x) = cosx
cos(π/2 - x) = sinx