一、Path的基本操作
速查表~
| 作用 | 相关方法 | 备注 |
| 移动起点 | moveTo | 移动下一次操作的起点位置 |
| 设置终点 | setLastPoint | 重置当前path中最后一个点位置,如果在绘制之前调用,效果和moveTo相同 |
| 连接直线 | lineTo | 添加上一个点到当前点之间的直线到Path |
| 闭合路径 | close | 连接第一个点连接到最后一个点,形成一个闭合区域 |
| 添加内容 | addRect, addRoundRect, addOval, addCircle, addPath, addArc, arcTo | 添加(矩形, 圆角矩形, 椭圆, 圆, 路径, 圆弧) 到当前Path (注意addArc和arcTo的区别) |
| 是否为空 | isEmpty | 判断Path是否为空 |
| 是否为矩形 | isRect | 判断path是否是一个矩形 |
| 替换路径 | set | 用新的路径替换到当前路径所有内容 |
| 偏移路径 | offset | 对当前路径之前的操作进行偏移(不会影响之后的操作) |
| 贝塞尔曲线 | quadTo, cubicTo | 分别为二次和三次贝塞尔曲线的方法 |
| rXxx方法 | rMoveTo, rLineTo, rQuadTo, rCubicTo | 不带r的方法是基于原点的坐标系(偏移量), rXxx方法是基于当前点坐标系(偏移量) |
| 填充模式 | setFillType, getFillType, isInverseFillType, toggleInverseFillType | 设置,获取,判断和切换填充模式 |
| 提示方法 | incReserve | 提示Path还有多少个点等待加入(这个方法貌似会让Path优化存储结构) |
| 布尔操作(API19) | op | 对两个Path进行布尔运算(即取交集、并集等操作) |
| 计算边界 | computeBounds | 计算Path的边界 |
| 重置路径 | reset, rewind |
清除Path中的内容 reset不保留内部数据结构,但会保留FillType. rewind会保留内部的数据结构,但不保留FillType |
| 矩阵操作 | transform | 矩阵变换 |
Path在2D绘图中非常重要~
第1组: moveTo、 setLastPoint、 lineTo 和 close



第2组: addXxx与arcTo

这里要注意绘制方向CW和CCW的影响和区别。(细节:path存储线段是通过点的方式的原因:解析和存储方便)


参数表:
| 参数 | 摘要 |
| oval | 圆弧的外切矩形。 |
| startAngle | 开始角度 |
| sweepAngle | 扫过角度(-360 <= sweepAngle <360) |
| forceMoveTo | 是否强制使用MoveTo |
PS: sweepAngle取值范围是 [-360, 360),不包括360,当 >= 360 或者 < -360 时将不会绘制任何内容, 对于360,你可以用一个接近的值替代,例如: 359.99。
addArc和arcTo的区别:addArc只是一个圆弧,不连接两个端点;arcTo要连接两个端点。
第3组:isEmpty、 isRect、isConvex、 set 和 offset
博客介绍了Path在2D绘图中的基本操作,包括三组操作:第一组有moveTo等;第二组是addXxx与arcTo,需注意绘制方向影响及addArc和arcTo区别;第三组有isEmpty等。还提到sweepAngle取值范围等细节。
5420

被折叠的 条评论
为什么被折叠?



