🖋️
valora
  • Introduction
  • Painting the Canvas
  • Path Creation
  • Path Manipulation
  • Custom Shaders
  • Being the Artist
  • Gallery
Powered by GitBook
On this page

Was this helpful?

Painting the Canvas

Valora's painting surface.

PreviousIntroductionNextPath Creation

Last updated 5 years ago

Was this helpful?

The central component of valora is the . 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();

canvas.set_color(LinSrgb::new(1., 0., 1.));
canvas.paint(Stroked {
    width: 2.,
    element: Ngon::triangle(world.center(), /*radius=*/200.),
});

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

Thankfully in valora we don't have to work at such a low level unless we want to. Valora defines the 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:

Paint
Canvas
A stroked triangle.