Update
This commit is contained in:
@@ -218,6 +218,32 @@ toggleInverseFillType | 切换填充规则(即原有规则与反向规则之
|
||||
|
||||
**布尔操作是两个Path之间的运算,主要作用是用一些简单的图形通过一些规则合成一些相对比较复杂,或难以直接得到的图形**。
|
||||
|
||||
如太极中的阴阳鱼,如果用贝塞尔曲线制作的话,可能需要六段贝塞尔曲线才行,而在这里我们可以用四个Path通过布尔运算得到,而且会相对来说更容易理解一点。
|
||||
|
||||

|
||||
|
||||
``` java
|
||||
canvas.translate(mViewWidth / 2, mViewHeight / 2);
|
||||
|
||||
Path path1 = new Path();
|
||||
Path path2 = new Path();
|
||||
Path path3 = new Path();
|
||||
Path path4 = new Path();
|
||||
|
||||
path1.addCircle(0, 0, 200, Path.Direction.CW);
|
||||
path2.addRect(0, -200, 200, 200, Path.Direction.CW);
|
||||
path3.addCircle(0, -100, 100, Path.Direction.CW);
|
||||
path4.addCircle(0, 100, 100, Path.Direction.CCW);
|
||||
|
||||
|
||||
path1.op(path2, Path.Op.DIFFERENCE);
|
||||
path1.op(path3, Path.Op.UNION);
|
||||
path1.op(path4, Path.Op.DIFFERENCE);
|
||||
|
||||
canvas.drawPath(path1, mDeafultPaint);
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
### 计算边界
|
||||
|
||||
Reference in New Issue
Block a user