TESTER

polygon_round

polygon_round(points, radius, precision, [draw=true], [stroke], [fill], [weight]) -> NULL || List of points

Get a polygon and round his corners

Syntaxe

polygon_round(points=points, radius=20, points=10)

Arguments

NameRequiredDefaultDescription
pointsyes-List for polygon'coords
radiusyes-Radius of angles
precisionyes-Number of points to add (more precision, more points)
draw-trueIf false, return a list of points, and don't draw (stroke, fill & weight are ignored)
stroke--Stroke color
fill--Fill color
weight--Stroke weight (thickness)

Full example

canvas(width=880, height=1200);
var color="#FFC107";
load_text_default(25);
var france = [8,51,56,56,56,29,66,29,86,44,121,9,140,9,175,48,  230,70,190,125,205,192,173,214,136,199,121,224,38,194,57,131,8,75]; // simplified...
def france_contour(){
    for (var i=0; i<france.length-1;i+=2) {
        circle(france[i], france[i+1], 4, fill="#1976D2", stroke="transparent");
    }
}

coord_translate(10,10);
polygon(points=france, fill=color);
text("polygon", 10, 250);
france_contour();

coord_translate(300,0);
var pr10 = polygon_round(points=france, radius=10, precision=10, draw=false);
polygon(points=pr10, fill=color);
text("polygon_round 10", 10, 250);
france_contour();

coord_translate(300,0);
var pr30 = polygon_round(points=france, radius=30, precision=10, draw=false);
polygon(points=pr30, fill=color);
text("polygon_round 30", 10, 250);
france_contour();

coord_translate(-600,300);
var pj5 = polygon_jitter(france, 5);
polygon(points=pj5, fill=color);
text("polygon_jitter 5", 10, 250);
france_contour();

coord_translate(300,0);
var pj10 = polygon_jitter(france, 10);
polygon(points=pj10, fill=color);
text("polygon_jitter 10", 10, 250);
france_contour();

coord_translate(300,0);
var pj20 = polygon_jitter(france, 20);
polygon(points=pj20, fill=color);
text("polygon_jitter 20", 10, 250);
france_contour();


coord_translate(-600,300);
var ps5 = polygon_smooth(france, 5);
polygon(points=ps5, fill=color);
text("polygon_smooth 5", 10, 250);
france_contour();

coord_translate(300,0);
var ps7 = polygon_smooth(france, 7);
polygon(points=ps7, fill=color);
text("polygon_smooth 7", 10, 250);
france_contour();


coord_translate(300,0);
var ps10 = polygon_smooth(france, 2);
polygon(points=ps10, fill=color);
text("polygon_smooth 10", 10, 250);
france_contour();


coord_translate(-600,300);
var psi5 = polygon_simplify(france, 5);
polygon(points=psi5, fill=color);
text("polygon_simplify 5", 10, 250);
france_contour();

coord_translate(300,0);
psi5 = polygon_simplify(france, 15);
polygon(points=psi5, fill=color);
text("polygon_simplify 15", 10, 250);
france_contour();

coord_translate(300,0);
psi5 = polygon_simplify(france, 30);
polygon(points=psi5, fill=color);
text("polygon_simplify 30", 10, 250);
france_contour();


save("polygons_specials.png");