文章目录

  • 一、PathMeasure API 简介
    • 1、nextContour 函数
    • 2、getPosTan 函数 ★

一、PathMeasure API 简介


PathMeasure 官方文档 : https://developer.android.google.cn/reference/kotlin/android/graphics/PathMeasure

PathMeasure 是 Path 的一个 工具类 , 字面意思就是 Path 的测量工具类 ,

为该 PathMeasure 设置一个 Path 对象 , 则可以对 Path 的 路径 , 轨迹 进行测量 , 可以精确的计算出 Path 的运动轨迹 ,

PathMeasure 提供了 777 个函数用于实现相关功能 ;

1、nextContour 函数

nextContour 函数 作用是 跳转到下一个轮廓 ;

Path 是可以进行组合的 , 调用 Path 的 op 函数 , 可以将两个 Path 轮廓组合在一起 , 设置了组合以后 , 假如对其中的一个 Path 进行测量 , 调用 nextContour 函数 , 即可对另外一个 Path 轮廓进行测量 ;

两个 Path 没有先后顺序 ;

nextContour 函数原型 :

open fun nextContour(): BooleanMove to the next contour in the path.
Return true if one exists, or false if we're done with the path.移动到路径中的下一个轮廓。
如果存在,则返回true;如果路径已完成,则返回false。

2、getPosTan 函数 ★

getPosTan 函数 作用是 获取指定长度位置的坐标点 以及该点对应切线的值 ;

getPosTan 函数原型 :

open fun getPosTan(distance: Float, pos: FloatArray!, tan: FloatArray!
): BooleanPins distance to 0 <= distance <= getLength(),
and then computes the corresponding position and tangent. Returns false if there is no path, or a zero-length path was specified,
in which case position and tangent are unchanged.将距离固定到0<=距离<=getLength(),
然后计算相应的位置和切线。如果没有路径或指定了零长度路径,则返回false,
在这种情况下,位置和切线不变。
  • distance: Float 参数 : 沿当前轮廓进行采样的距离 ;
The distance along the current contour to sample
  • pos: FloatArray! 参数 : 如果不为null,则返回采样位置(x==[0],y==[1]) ;
If not null, returns the sampled position (x==[0], y==[1])
  • tan: FloatArray! 参数 : 如果不为null,则返回采样的切线(x==[0],y==[1]);
If not null, returns the sampled tangent (x==[0], y==[1])
  • Boolean 返回值 : 如果没有与此度量值对象关联的路径,则为false ;
false if there was no path associated with this measure object

pos: FloatArray! 和 tan: FloatArray! 这两个数组 , 适用于接收返回值的 , 并不是用于参数传递 ;

只有曲线找切线才有意义 , 直线的切线直接就是 ( 0, 0 ) 坐标 ;

下图中 , 蓝色是 圆形 的曲线 , 红色点 是 曲线上的点 , 则 绿色点就是获取的 tan: FloatArray 参数值 , 该点是曲线的圆心 , 与曲线上的点连接 , 垂直与切线 ;

【Android UI】Path 测量 PathMeasure ② ( PathMeasure API 简介 | nextContour 函数 | getPosTan 函数 ★ | 曲线切线处理 )相关推荐

  1. android高级UI之PathMeasure<一>--Path测量基础(nextContour、getPosTan、getMatrix、getSegment)

    前言: 在上一次android高级UI之贝塞尔曲线<下>--贝塞尔曲线运用:QQ消息气泡完成了对于贝塞尔曲线绘制的学习,今天准备学习UI绘制中经常会用到的跟Path相关的一些知识,也是很重 ...

  2. Path特效之PathMeasure打造万能路径动效

    转自:http://blog.csdn.net/u013831257/article/details/51565591 Path之玩出花样 作者微博: @GcsSloop [本系列相关文章] 可以看到 ...

  3. Android关于Path你所知道的和不知道的一切

    零.前言 1.canvas本身提供了很多绘制基本图形的方法,普通绘制基本满足 2.但是更高级的绘制canvas便束手无策,但它的一个方法却将图形的绘制连接到了另一个次元 3.下面进入Path的世界,[ ...

  4. Android 系统性能优化(34)---Android UI 性能优化

    Android官网 Slow rendering:个人觉得非常有价值,比如指出 对象分配.垃圾回收(GC).线程调度以及Binder调用 是Android系统中常见的卡顿原因,更重要的是给出了定位和解 ...

  5. Android自动化测试之MonkeyRunner MonkeyDevice MonkeyImage API使用详解 脚本编写 脚本录制回放

    MonkeyRunner 系列文章 MonkeyRunner简介 MonkeyRunner 三大模块 MonkeyRunner API MonkeyDevice API MonkeyImage API ...

  6. 各种Android UI开源框架 开源库

    各种Android UI开源框架 开源库 转 https://blog.csdn.net/zhangdi_gdk2016/article/details/84643668 自己总结的Android开源 ...

  7. android 上面月亮模式,Android UI 篇- 手势月亮 亮度动画

    Android UI 篇- 手势月亮动画 一.应用场景 1.1.先上效果图 2020-05-03 01_00_28.gif 一个有创意的亮度动画,通过手势上下滑动控制手机屏幕亮度,动画从太阳(天亮了) ...

  8. 连接Android与ASP.NET Core Web API的完整教程

    目录 准备数据库 ASP.NET Core Web API项目 创建新的ASP.NET Core Web API项目 实体 导入EF Core 创建DbContext 将连接字符串添加到appsett ...

  9. Android UI最佳实践

    为多屏设计(一) - 支持多个屏幕尺寸 参考地址:http://developer.android.com/training/multiscreen/index.html  Android UI设计提 ...

最新文章

  1. XSS攻击之窃取Cookie
  2. 基于本地部署的hyperledger fabric升级chaincode
  3. 浅谈Python中的编码规则
  4. dagride实现模糊查询
  5. 启用OWA提示用户密码过期工具
  6. JavaScript判断数组是否有重复值
  7. Java开发笔记(五十)几种开放性修饰符
  8. ADO.NET学习笔记--索引Index
  9. 在WinCC V7.3中如何导出过程值进行数据归档
  10. 计算机一级三维饼图,计算机考试excel制作复合饼图的方法
  11. 如何保持福禄克CFP2-100-Q、OFP2-100-Q等光纤测试仪器的洁净?
  12. 华为手机翻译功能怎么使用?这三种方法请务必收藏
  13. 通俗易懂的讲解 网关是什么
  14. C++ builder 添加资源文件
  15. java课程设计 成绩_Java课程设计—学生成绩管理系统(201521123005 杨雪莹)
  16. VScode淡绿色护眼设置
  17. 《微信》医保支付功能介绍
  18. CAD控件:界面控制说明和方法
  19. CSS深度(穿透)选择器
  20. 查看自己本机的ip地址、DNS服务器地址

热门文章

  1. 基于泛在电力物联网的公用配变健康状态智能诊断与综合评价研究
  2. 邯郸翱翔学校春季班火热开启
  3. C语言中__packed
  4. 为什么我的电脑会突然蓝屏
  5. 华为inside第一辆车来了!总裁说:若计算上干不过特斯拉,可关门不干了
  6. 【计算机毕业文章】基于SpringBoot的医院疫苗接种信息管理系统的设计与实现
  7. 这款QLED电视机实用性怎么样,一起来了解一下
  8. 计算机辅助普通话测试教程,计算机辅助普通话水平测试详细操作步骤
  9. springboot 事务回滚
  10. 书评之《牧羊少年奇幻之旅》