Painting the Canvas

Valora's painting surface.

The central component of valora is the Canvasarrow-up-right. The canvas supports many low level drawing operations such as drawing paths and stroking or filling them. For example, we can draw a triangle like this:

canvas.set_color(LinSrgb::new(1., 0., 1.));
canvas.move_to(P2::new(430., 225.));
canvas.line_to(P2::new(83., 225.));
canvas.line_to(P2::new(256., 525.));
canvas.close_path();
canvas.set_stroke_width(10.);
canvas.stroke();
A stroked triangle.

Thankfully in valora we don't have to work at such a low level unless we want to. Valora defines the Paintarrow-up-right trait, which is implemented by any type that knows how to represent itself on a canvas. We can instead draw an equilateral triangle like this:

You can implement Paint for your own patterns and easily compose them, as we will see in later chapters.

Last updated