在Android里自定义view的时候,会用到三角函数,主要用到 java.lang.Math里的函数:

E = 2.7182818284590452354
PI = 3.14159265358979323846
Math.pow(double a, double b); a的b次方
Math.sqrt(double a);a开根号
Math.sin(Math.PI/2);90 度的正弦值
Math.cos(0);0度的余弦值
Math.tan(Math.PI/3);60度的正切值
Math.atan(1);1的反正切值
Math.PI;π
Math.toRadians(double angdeg) 角度转化为弧度
Math.toDegrees(Math.PI/2);弧度转化为角度 (π/2的角度值)
Math.ceil() 大于等于( >= )给定参数的的最小整数
Math.abs() 求绝对值
Math.floor() 求小于等于某个数的最大整数
Math.round() 四舍五入

关于atan2()这个函数重点讲一下:

cx,cy为原点(这里指画圆时的圆心),x,y为当前点。这里api里参数是先y后x,但其实是先x后y,而且在Android里还应该是cy-y,因为在数学坐标系里x轴以上的点的y值肯定是大于x轴以下的点的y值的(位置在上的点的y值大于位置在下边的点的y值),但在Android坐标系里下边的点的y值是大于上边的点的y值的,

atan2(double y, double x)
Math.atan2(x - cx, cy - y)

atan()和atan2()的区别

atan(double a)接受一个参数,但是这里有个问题,atan(-1)可以是45°和225°的弧度值,这就坑壁了

atan2(double y, double x)接受两个参数,参考上边:在数学坐标系里是当前点与圆心连线和y轴正方形的夹角的弧度值,当然在Android坐标系里就是当前点与圆心连线与y轴负方向的夹角的弧度值。所以在Android坐标系里,通过atan2()求出的弧度值,如果参与cos()计算,正负值都需要时,需要Math.atan2(x - cx, cy - y)-Math.PI/2;因为cos在-π/2和π/2之间都是正数,但在Android坐标系里通过atan2求得的弧度值的cos,我们需要在0和π之间都取正数。

更多相关文章

  1. android给View设置边框 填充颜色 弧度
  2. Android 坐标系统
  3. 学个明白--Android世界的坐标系
  4. Android View系列 - 坐标系
  5. android度量相对于地球坐标系的加速度
  6. Android 坐标系及动画移动坐标相关集合
  7. Android 自定义View之坐标系(一)
  8. android坐标系相关知识点

随机推荐

  1. android 禁用锁屏 到修改方式
  2. Android: requires android.permission.R
  3. 【Android】图文解密Android(安卓)Window
  4. Android编译系统中的Android.bp、Bluepri
  5. Android(安卓)自动化测试—robotium(三)Edi
  6. Android相机开发中遇到的坑(注意事项)
  7. [转]Android(安卓)调用系统摄像头
  8. Android9.0网络请求解决方案_小笔记
  9. Mac 下 Android(安卓)Studio 获取SHA1 码
  10. Android之Telephony各文件解释