Skip to content
Circles

Circles

Compare filled, outlined, hard-edged, and anti-aliased circles.

Circles

Usage

from canvas.color import Color
from canvas.buffer import Canvas
from canvas.shapes.circles import (
    draw_circle,
    draw_circle_aa,
    fill_circle,
    fill_circle_aa,
)
from canvas.io.bmp import write_bmp
from canvas.io.png import write_png


def main() raises:
    var c = Canvas(2520, 480, Color(255, 255, 255))

    draw_circle(c, 300, 240, 180, Color(150, 40, 180))
    draw_circle_aa(c, 780, 240, 180, Color(150, 40, 180))
    fill_circle(c, 1260, 240, 180, Color(150, 40, 180))
    fill_circle_aa(c, 1740, 240, 180, Color(150, 40, 180))
    # A 30px-wide ring at the same radius: the stroke straddles the
    # radius, 15px either side of it, so this ring's outer edge sits
    # where a filled disk 15px larger would end.
    draw_circle_aa(c, 2220, 240, 180, Color(150, 40, 180), width=30.0)

    write_bmp(c, "examples/out_circles.bmp")
    write_png(c, "examples/out_circles.png")
    print("wrote examples/out_circles.bmp and .png")