Canvas
Canvas objects provide a way to draw and manipulate graphics in a 2D space. They are used to create images, shapes, and other visual elements. The canvas can be thought of as a blank sheet of paper where you can draw graphics objects.
Initialization
Canvas objects are created using the Canvas class. They can be initialized with no arguments. When we use the Canvas.save method, the canvas object automatically computes the appropriate size by using the dimensions of the drawn objects and the canvas.border property (which specifies the page margins).
Drawing
Canvas.draw method is used to draw graphics objects on the canvas. The draw method takes a drawable object as an argument and draws it on the canvas.
Overwriting Object Properties
Output Format
Help-lines
Transformations
Canvas objects can be transformed by using transformation methods. This is similar to the Shape and Batch objects. The transformations are applied to the canvas itself, which means that all subsequent drawing operations will be affected by the applied transformation.
Resetting the Canvas
Resetting the Transformation Matrix
Clipping
Multiple-page Output
Jupyter Notebooks
Rendering Pipeline
flowchart LR
A1@{shape: odd, label: "canvas.draw( )"}
B@{shape: processes, label: "Sketch Objects"}
C@{shape: odd, label: "canvas.save(B)"}
D@{shape: odd, label: "canvas.save(A)"}
E@{shape: notch-rect, label: "TeX code"}
F@{shape: notch-rect, label: "TeX code"}
G@{shape: hex, label: "XeLaTeX
(compile)"}
H@{shape: hex, label: "XeLaTeX
(compile)"}
I@{shape: doc, label: "output
.pdf, .ps, .eps,
.svg, .png, .tex"}
J@{shape: doc, label: "output
.pdf, .ps, .eps,
.svg, .png, .tex"}
K@{shape: curv-trap, label: "display"}
L@{shape: curv-trap, label: "display"}
A1 --> B --> C
A1 --> B --> D
subgraph ide1 [ ]
C --> E --> G --> I --> K
end
subgraph ide2 [ ]
D --> F --> H --> J --> L
end