在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和π之间都取正数。

android cos函数,Android三角函数相关推荐

  1. android 退出函数,android – 关闭应用程序与退出按钮

    下面使用main.xml文件 android:orientation="vertical" android:layout_width="fill_parent" ...

  2. android 回退函数,android浏览器研究-回退和前进

    浏览器探究--回退和前进 前进: 在菜单中点击前进功能主线程会执行BrowserActivity.onOptionsItemSelected,它会调用Controller.onOptionsItemS ...

  3. android 响铃函数,android – 铃声一遍又一遍地播放(无限循环播放)

    我遇到了类似的问题.事实证明,当播放铃声时,它将无限重复直到停止,而当播放通知声音时,它将只播放一次.所以我的猜测是,你的情况的区别在于是否在someFunctionToLookupAValidNot ...

  4. android录音函数,Android - 实现录音变声播放

    变声功能大家都接触过,比如qq中发送一段变声消息,网络视频中演员经过处理的声音.其实这个功能实现起来并不复杂,因为声音处理的算法有大神已经帮我们写好,拿来用就行. 代码是用c写的,我们来稍微处理一下 ...

  5. android onresume函数,Android界面跳转时候onDestroy和onResume的调用顺序

    Android在界面跳转的时候,比如从Activity A 跳回 Activity B,并不是先执行A的onDestroy,而是执行完A的onPause之后就立即跳回Activity B里的onRes ...

  6. android dbinfo函数,android SQLiteDatabase中的update函数用法?

    创建数据库 Android 不自动提供数据库.在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表.索引,填充数据.Android 提供了 SQLiteOpenHelper ...

  7. android vitamio 函数,Android如何集成Vitamio

    一.Vitamio的简介 Vitamio 是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染.VItamio除了支持常规的格式之外,还支持流媒体格式,M3 ...

  8. android 字符串函数,Android JNI开发系列(六)字符串操作

    JNI字符串操作 字符串是引用数据类型,不属于基本数据类型 Java 使用unicode编码,C使用UTF-8,所以在操作中 C语言的字符串操作在头文件中 示例代码 public native Str ...

  9. android final函数,Android 回调函数 解析问题

    大家先看看我的代码,Okhttp访问接口返回json 然后 解析回调的例子 public static void get(String url, final CallBack callback) { ...

  10. android 暂停函数,Android万能视频播放器06-添加视频暂停、播放和Seek功能

    1.Seek函数: avformat_seek_file(pFormatCtx, -1, INT64_MIN, relsecds, INT64_MAX, 0); relsecds单位: int64_t ...

最新文章

  1. BT觀念分享和常見問題彙整
  2. python 新建文件夹
  3. Tcp方式采集CNC兄弟设备数据
  4. SQLserver分页 高效率
  5. haproxy 参数说明
  6. UML之用例图(use case)箭头方向
  7. linux系统管理之单机系统管理 - 超级用户和进程管理
  8. linux程序编译过程
  9. 使用FlashFXP连接Linux乱码问题
  10. java项目学生量化管理考核细则_班级管理量化考核细则范本
  11. BIM模型文件下载——江湖别墅Revit模型
  12. 使用es的新姿势 2.x 5.x 6.x通用
  13. 一文看完澜舟科技被EMNLP'22录用的三篇论文
  14. 2021年「博客之星」参赛博主:dnbug Blog
  15. Landsat5数据下载中国地区1988年
  16. hadoop读写流程、副本机制、安全模式、平衡节点
  17. 鸡兔同笼:已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。
  18. 买卖股票的最好时机(三)
  19. Win10 1709 64位专业版下载 202010
  20. 图像识别DM8127开发攻略——KERNEL的移植说明

热门文章

  1. Dukto 傻瓜安装教程
  2. java计算机毕业设计水果商城设计MyBatis+系统+LW文档+源码+调试部署
  3. iredmail邮件服务器安装流程
  4. 宁波注塑电子塑料件加工
  5. 航飞原始影像外方位元素_武汉大学生历年摄影测量试题及答案
  6. 华为性格测评注意事项
  7. 高淇java_关于高淇JAVA中SORM总结学习笔记详细个人解释
  8. 计算机在小学英语中的应用,计算机在小学英语教学中的应用.doc
  9. [Redis]Redis客户端
  10. 反转链表(图解,易懂)