MCPcopy Create free account
hub / github.com/HumbleUI/Skija / drawPaths

Method drawPaths

examples/scenes/src/PathsScene.java:29–184  ·  view source on GitHub ↗
(Canvas canvas, Paint paint)

Source from the content-addressed store, hash-verified

27 }
28
29 public void drawPaths(Canvas canvas, Paint paint) {
30 try (var tangentStroke = new Paint().setColor(0xFFFAA6B2).setMode(PaintMode.STROKE).setStrokeWidth(1f);
31 var pathBuilder = new PathBuilder();)
32 {
33 canvas.save();
34
35 // moveTo, lineTo, close
36 try (var path = pathBuilder.setFillMode(PathFillMode.WINDING)
37 .moveTo(20, 1.6f)
38 .lineTo(31.7f, 37.8f)
39 .lineTo(0.9f, 15.4f)
40 .lineTo(39f, 15.4f)
41 .lineTo(8.2f, 37.8f)
42 .closePath()
43 .detach();)
44 {
45 for (var fillMode: PathFillMode.values()) {
46 canvas.save();
47 canvas.clipRect(Rect.makeLTRB(0, 0, 40, 40));
48 canvas.drawPathOnce(path.makeWithFillMode(fillMode), paint);
49 canvas.restore();
50 canvas.translate(50, 0);
51 }
52 }
53
54 // rMoveTo, rLineTo
55 pathBuilder.setFillMode(PathFillMode.EVEN_ODD);
56 pathBuilder.rMoveTo(20, 1.6f).rLineTo(11.7f, 36.2f).rLineTo(-30.8f, -22.4f).rLineTo(38.1f, 0f).rLineTo(-30.8f, 22.4f);
57 canvas.drawPathOnce(pathBuilder.snapshot(), paint);
58 pathBuilder.reset();
59 canvas.translate(50, 0);
60
61 // quadTo, rQuadTo
62 canvas.drawLine(0, 20, 20, 0, tangentStroke);
63 canvas.drawLine(20, 0, 40, 20, tangentStroke);
64 canvas.drawLine(0, 20, 20, 40, tangentStroke);
65 canvas.drawLine(20, 40, 40, 20, tangentStroke);
66
67 pathBuilder.rMoveTo(0, 20).quadTo(20, 0, 40, 20).rQuadTo(-20, 20, -40, 0);
68 canvas.drawPathOnce(pathBuilder.detach(), paint);
69 canvas.translate(50, 0);
70
71 // conicTo, rConicTo
72 canvas.drawLine(0, 20, 20, 0, tangentStroke);
73 canvas.drawLine(20, 0, 40, 20, tangentStroke);
74 canvas.drawLine(0, 20, 20, 40, tangentStroke);
75 canvas.drawLine(20, 40, 40, 20, tangentStroke);
76
77 pathBuilder.rMoveTo(0, 20).conicTo(20, 0, 40, 20, 0.5f).rConicTo(-20, 20, -40, 0, 2);
78 canvas.drawPathOnce(pathBuilder.detach(), paint);
79 canvas.translate(50, 0);
80
81 // cubicTo, rCubicTo
82 canvas.drawLine(0, 20, 0, 0, tangentStroke);
83 canvas.drawLine(40, 0, 40, 20, tangentStroke);
84 canvas.drawLine(0, 20, 10, 30, tangentStroke);
85 canvas.drawLine(40, 20, 30, 30, tangentStroke);
86

Callers 1

drawMethod · 0.95

Calls 15

makeWithFillModeMethod · 0.95
getBoundsMethod · 0.95
computeTightBoundsMethod · 0.95
setStrokeWidthMethod · 0.80
setModeMethod · 0.80
saveMethod · 0.80
detachMethod · 0.80
closePathMethod · 0.80
lineToMethod · 0.80
moveToMethod · 0.80
drawPathOnceMethod · 0.80
restoreMethod · 0.80

Tested by

no test coverage detected