美文网首页
三角函数在Android开发中使用

三角函数在Android开发中使用

作者: 爱你为你做饭 | 来源:发表于2021-08-04 18:10 被阅读0次
  1. 借助三角函数计算坐标点
    • Android坐标系是以水平方向为x轴,竖直方向为y轴,所以Android中角度的计算都是以x轴为参照标准,以圆为例,3点钟为0度此时贴合x轴,顺时针为90度,180度,270度,360度(和0度贴合)逆时针:-90度,-180度,-270度,-360度(和0度贴合),坐标计算这个参照标准很重要。
    • 在知道一条边长的情境下, 借助于三角函数 正弦,余弦 函数可以轻松计算出对应点的坐标,不局限于圆,其他也可以。
    • 以圆为例,知道半径和对应的角度(注意参照)可以计算出园中的任意一个点的坐标,需要注意的是这个坐标是相对于圆心的,所以点的绝对坐标需要加上圆心的坐标。
    • 具体的计算可以参考下面文章。
  2. 借助反三角函数计算角度
    • 知道坐标系上的任意两点,都可以借助于反正切函数计算出两点的角度,需要注意的是角度依然相对于x轴参照,顺时针为正,逆时针为负。
    • 由上一条可知,计算x轴参照顺时针则y差值取正,逆时针则y差值取负(点的y的取值顺序决定)
    • 若角度与y轴参照亦可以通过反正切函数计算其角度,与x轴相反的是x的差值。
    • 逆时针a于顺时针的360度减去a的正切值关系为正负关系,即-a的正切值和360度减去a的正切值相等。
    • 若计算出两点间的角度是负的,则为逆时针,加上360即可。
    • 两点计算角度可以参考下面文章
  3. 借助三角函数计算钟表的时刻(圆中圆绘制)
    • 需求:绘制大圆并将大圆按照角度分为12个小圆,计算出每一个小圆的圆心
    • 圆心半径绘制大圆
    • 12刻度则将大圆分为12份,每一角度为30度,小圆半径已知,可以计算内心圆的半径
    • 根据 内心圆半径和角度借助三角函数可以计算出12小圆的圆心,根据其圆心和小圆半径可以绘制对应的12小圆。
  4. 扇形上绘制文本和圆心绘制文本
    • 绘制文本相关可以参考文章,需要特别注意的是xy坐标值取决于Textalign和文本基线,并不是单纯的文本的左上顶点坐标值(这个和图片的绘制不一样)。
    • 圆居中绘制文本,根据圆半径计算文本rect,x居中,y是rect居中+基线,由此可以绘制,即:


      计算居中文本xy坐标值
    • 扇形绘制文本:扇形绘制文本等同于圆居中绘制文本,同样需要计算文本绘制的xy坐标值,xy坐标值如上取决于textalign和文本基线,扇形角度都存在,半径也存在,根据半径和角度结合三角函数可以计算出点的坐标值,根据坐标值和textalign和文本基线可以实现扇形绘制文本。
  5. 在4的需求基础上校验点击的点在哪一个范围内(点击点角度在哪一个范围上)。
    • 点击点和圆心两个点可以借助反三角函数计算x轴参照的角度,角度和扇形的角度对比即可校验用户点击那一块区域。
    • 注意x轴为0度,注意扇形的度数顺时针还是逆时针。
  6. 校验圆中绘制的时刻是否与当前的时刻匹配
    • 与上面校验类似,时刻的校验分为时针和分针的校验,而每一个时刻都有相应的角度,用户绘制的时针和分针的结束点与圆心点计算x轴参照对应的角度匹配计算即可。
    • 计算角度若为负加上360即可。
  7. 扩展:校验用户绘制圆是否为圆的校验算法:记录起点,取用户所有绘制的点计算出最长路径,若是圆与起点最远的点就是直径点,由此可以计算出圆心和半径,标准半径有了,后续校验所有点到圆心点的半径和标准半径即可,手动绘制可以适当放宽标准即标准半径可以内外扩展像素。

参考文章:
Android:计算圆上的某点坐标
Android:两点计算与坐标轴间的夹角
Android:text文本绘制
Android:扇形绘制及其扇形上绘制文本
Android:圆的校验
Android:打造自己的时钟

相关文章

  • Android技巧 - 收藏集 - 掘金

    Android 中使用 ViewStub 提高布局性能 - Android - 掘金在 Android 开发中, ...

  • 一定能成功的Android NDK环境配置教程

    前言 在Android开发中,使用 NDK开发的需求正逐渐增大 但在Android使用NDK前需要进行 相关环境配...

  • 春招笔记(十四)

    1.是否熟悉Android jni开发,jni如何调用java层代码 在Android开发中,使用NDK开发的需求...

  • 三角函数在Android开发中使用

    借助三角函数计算坐标点Android坐标系是以水平方向为x轴,竖直方向为y轴,所以Android中角度的计算都是以...

  • Android 动画总结

    在日常的Android开发中,经常会使用到动画,这里就对Android开发中的动画做一下总结 Android 动画...

  • Android 动画总结

    在日常的Android开发中,经常会使用到动画,这里就对Android开发中的动画做一下总结。 Android 动...

  • Android适配的那些坑

    在开发中,Android手机种类繁多造成开发中需要适配很多分辨率的手机,以下是我在开发中使用的Android适配,...

  • 替换默认Android debug keystore

    使用Android Studio开发,不需要前面的操作,请转至最后 为什么替换 Android开发中,在使用第三方...

  • Android Handler 机制

    前言 Handler 在Android 开发中是使用频率非常高的,所以Android 开发有必要了解Handler...

  • Android 工具:ADB 使用总结

    ADB全称Android Debug Bridge,Android 开发中, 我们在开发过程中经常使用这个工具来操...

网友评论

      本文标题:三角函数在Android开发中使用

      本文链接:https://www.haomeiwen.com/subject/lsljvltx.html