Polygons


using GeometryBasics

using AbstractPlotting

scene = Scene(resolution = (500, 500))
points = decompose(Point2f0, Circle(Point2f0(50), 50f0))
pol = poly!(scene, points, color = :gray, strokewidth = 10, strokecolor = :red)
# Optimized forms
poly!(scene, [Circle(Point2f0(50+300), 50f0)], color = :gray, strokewidth = 10, strokecolor = :red)
poly!(scene, [Circle(Point2f0(50+i, 50+i), 10f0) for i = 1:100:400], color = :red)
poly!(scene, [FRect2D(50+i, 50+i, 20, 20) for i = 1:100:400], strokewidth = 2, strokecolor = :green)
linesegments!(scene,
    [Point2f0(50 + i, 50 + i) => Point2f0(i + 70, i + 70) for i = 1:100:400], linewidth = 8, color = :purple
)