Skip to content

Commit 2168e7e

Browse files
committed
Update
1 parent a748cdd commit 2168e7e

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

CustomView/Advance/[7]Path_Play.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,32 @@ toggleInverseFillType | 切换填充规则(即原有规则与反向规则之
218218

219219
**布尔操作是两个Path之间的运算,主要作用是用一些简单的图形通过一些规则合成一些相对比较复杂,或难以直接得到的图形**
220220

221+
如太极中的阴阳鱼,如果用贝塞尔曲线制作的话,可能需要六段贝塞尔曲线才行,而在这里我们可以用四个Path通过布尔运算得到,而且会相对来说更容易理解一点。
222+
223+
![](http://ww1.sinaimg.cn/large/005Xtdi2jw1f43b9o4yfuj308c0etq2y.jpg)
224+
225+
``` java
226+
canvas.translate(mViewWidth / 2, mViewHeight / 2);
227+
228+
Path path1 = new Path();
229+
Path path2 = new Path();
230+
Path path3 = new Path();
231+
Path path4 = new Path();
232+
233+
path1.addCircle(0, 0, 200, Path.Direction.CW);
234+
path2.addRect(0, -200, 200, 200, Path.Direction.CW);
235+
path3.addCircle(0, -100, 100, Path.Direction.CW);
236+
path4.addCircle(0, 100, 100, Path.Direction.CCW);
237+
238+
239+
path1.op(path2, Path.Op.DIFFERENCE);
240+
path1.op(path3, Path.Op.UNION);
241+
path1.op(path4, Path.Op.DIFFERENCE);
242+
243+
canvas.drawPath(path1, mDeafultPaint);
244+
```
245+
246+
221247

222248

223249
### 计算边界

0 commit comments

Comments
 (0)