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

Method draw

examples/scenes/src/MatrixScene.java:7–61  ·  view source on GitHub ↗
(Canvas canvas, int width, int height, float dpi, int xpos, int ypos)

Source from the content-addressed store, hash-verified

5
6public class MatrixScene extends Scene {
7 @Override
8 public void draw(Canvas canvas, int width, int height, float dpi, int xpos, int ypos) {
9 canvas.translate(20, 20);
10
11 try (var stroke = new Paint().setColor(0x40000000).setMode(PaintMode.STROKE).setStrokeWidth(1)) {
12 canvas.save();
13 canvas.drawRect(Rect.makeLTRB(0, 0, 200, 200), stroke);
14 canvas.drawLine(0, 100, 200, 100, stroke);
15 canvas.drawLine(100, 0, 100, 200, stroke);
16 canvas.concat(Matrix33.makeTranslate(100, 100).makeConcat(Matrix33.makeRotate(5)));
17 canvas.drawRect(Rect.makeLTRB(-10, -10, 10, 10), blackFill);
18 var m44 = canvas.getLocalToDevice().getMat();
19 var m33 = canvas.getLocalToDeviceAsMatrix33().getMat();
20 canvas.restore();
21 canvas.drawString("translate(100, 100) + rotate(5)", 0, 220, inter13, blackFill);
22 for (var row = 0; row < 4; ++row)
23 canvas.drawString(String.format("[ %.2f %.2f %.2f %.2f ]", m44[row * 4], m44[row * 4 + 1], m44[row * 4 + 2], + m44[row * 4 + 3]), 0, 260 + row * 20, inter13, blackFill);
24 for (var row = 0; row < 3; ++row)
25 canvas.drawString(String.format("[ %.2f %.2f %.2f ]", m33[row * 3], m33[row * 3 + 1], m33[row * 3 + 2]), 0, 360 + row * 20, inter13, blackFill);
26 canvas.translate(300, 0);
27
28 canvas.save();
29 canvas.drawRect(Rect.makeLTRB(0, 0, 200, 200), stroke);
30 canvas.drawLine(0, 100, 200, 100, stroke);
31 canvas.drawLine(100, 0, 100, 200, stroke);
32 canvas.concat(Matrix33.makeRotate(5).makeConcat(Matrix33.makeTranslate(100, 100)));
33 canvas.drawRect(Rect.makeLTRB(-10, -10, 10, 10), blackFill);
34 m44 = canvas.getLocalToDevice().getMat();
35 m33 = canvas.getLocalToDeviceAsMatrix33().getMat();
36 canvas.restore();
37 canvas.drawString("rotate(5) + translate(100, 100)", 0, 220, inter13, blackFill);
38 for (var row = 0; row < 4; ++row)
39 canvas.drawString(String.format("[ %.2f %.2f %.2f %.2f ]", m44[row * 4], m44[row * 4 + 1], m44[row * 4 + 2], + m44[row * 4 + 3]), 0, 260 + row * 20, inter13, blackFill);
40 for (var row = 0; row < 3; ++row)
41 canvas.drawString(String.format("[ %.2f %.2f %.2f ]", m33[row * 3], m33[row * 3 + 1], m33[row * 3 + 2]), 0, 360 + row * 20, inter13, blackFill);
42 canvas.translate(300, 0);
43
44 // rotate over pivot
45 canvas.save();
46 canvas.drawRect(Rect.makeLTRB(0, 0, 200, 200), stroke);
47 canvas.drawLine(0, 100, 200, 100, stroke);
48 canvas.drawLine(100, 0, 100, 200, stroke);
49 canvas.concat(Matrix33.makeRotate(5, 100, 100));
50 canvas.drawRect(Rect.makeLTRB(-10, -10, 10, 10), blackFill);
51 m44 = canvas.getLocalToDevice().getMat();
52 m33 = canvas.getLocalToDeviceAsMatrix33().getMat();
53 canvas.restore();
54 canvas.drawString("translate(100, 100) + rotate(5) + translate(-100, -100)", 0, 220, inter13, blackFill);
55 for (var row = 0; row < 4; ++row)
56 canvas.drawString(String.format("[ %.2f %.2f %.2f %.2f ]", m44[row * 4], m44[row * 4 + 1], m44[row * 4 + 2], + m44[row * 4 + 3]), 0, 260 + row * 20, inter13, blackFill);
57 for (var row = 0; row < 3; ++row)
58 canvas.drawString(String.format("[ %.2f %.2f %.2f ]", m33[row * 3], m33[row * 3 + 1], m33[row * 3 + 2]), 0, 360 + row * 20, inter13, blackFill);
59 canvas.translate(300, 0);
60 }
61 }
62}

Callers

nothing calls this directly

Calls 15

makeTranslateMethod · 0.95
makeRotateMethod · 0.95
setStrokeWidthMethod · 0.80
setModeMethod · 0.80
saveMethod · 0.80
drawRectMethod · 0.80
concatMethod · 0.80
makeConcatMethod · 0.80
getLocalToDeviceMethod · 0.80
restoreMethod · 0.80
translateMethod · 0.45

Tested by

no test coverage detected