Path方法

本文详细介绍了Path对象在图形绘制中的常用方法,包括addArc和arcTo的区别,以及如何通过FillType设置填充规则。通过实例解析了EVEN_ODD、WINDING等四种FillType的工作原理,以及它们如何影响图形的填充效果。此外,还讨论了贝塞尔曲线的基本概念,以及Path的相对坐标系操作。最后,文章提到了Path的布尔运算,如DIFFERENCE、INTERSECT等五种不同操作的效果和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Path常用方法

作用相关方法备注
移动起点moveTo移动下一次操作的起点位置
设置终点setLastPoint重置当前path中最后一个点位置,如果在绘制之前调用,效果和moveTo相同
连接直线lineTo添加上一个点到当前点之间的直线到Path
闭合路径close连接第一个点连接到最后一个点,形成一个闭合区域
添加内容addRect, addRoundRect, addOval, addCircle, addPath, addArc, arcTo添加(矩形, 圆角矩形, 椭圆, 圆, 路径, 圆弧) 到当前Path (注意addArc和arcTo的区别)
判断值isEmpty、isRect判断Path是否为空、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矩阵变换

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2、addArc和arcTo,addArc是arcTo参数forceMoveTo=true时的方法

3、当paint为FILL或者FILL_AND_STROKE,path调用addxxx方法,最后设置setFillType方法,会形成不同的图形

  • addXXX参数中的Direction表示路径的方向:顺时针(CW)、逆时针(CCW)---------用于setFillType
  • FillType四中方式:EVEN_ODD(奇数填充),WINDING(不等0填充)、INVERSE_EVEN_ODD(偶数填充)、INVERSE_WINDING(等于0填充)--------在图形中随意找一个点任意方向射出一条射线,这条射线和图形相交(相切不算)的次数为奇数或偶数;在图形中随意找一个点任意方向射出一条射线,以0为初始值,对于射线和图形的所有交点,遇到每个顺时针的交点结果加1,逆时针结果减1

FillType详解

4、二阶的贝塞尔曲线为两个数据点和一个控制点,三阶的贝塞尔曲线为两个数据点和两个控制点

5、rxxx为相对坐标系

6、布尔操作5种:DIFFERENCE(差集1-2)、REVERSE_DIFFERENCE(差集2-1)、INTERSECT(交集)、UNION(并集)、XOR(异或)

op详解

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值