PLAYGROUND (experimental)

polygon

polygon(points, [stroke=#000000], [fill=#FFFFFF], [weight=1.00])

Draw a polygon (n-side polygon)

Syntaxe

polygon(points=[50, 62, 86, 50, 50, 38, 14, 50], stroke="#000000", fill="#FFA000", weight=4)

Arguments

NameRequiredDefaultDescription
pointsyes-list of coords x/y - must be even (multiple of 2)
stroke-#000000Stroke color
fill-#FFFFFFFill color
weight-1.00Stroke weight (thickness)

Full example

canvas(700, 700, "#020410", center=true);

var palette = ["#FFF8E1", "#FFECB3", "#FFE082", "#FFD54F", "
#FFCA28", "#FFC107", "#FFB300", "#FFA000", "#FF8F00", "#FF6F00"];

noise(1.0, 2.0, 2);

var phase = 0;
var phaseInc = 0.001;
var zoff = 0;
var breathing = 0;
var breathingInc = 0.7;
var rMin =  0.123 ;
var rMax =  10 ;
var count = 0;
for (var nb = 0; nb < 850; nb++) {
    if (nb%5 == 0) {
        var vertex = [];
        var noiseMax = 5.8;
        for (var a = 0; a < 360; a += 30) {
            var xoff = map(cos(a + phase), -1, 1, 0, noiseMax);
            var yoff = map(sin(a + phase), -1, 1, 0, noiseMax);
            var r = map(noise3d(xoff, yoff, zoff), 0, 1, 20, 300);
            var x = (r * cos(a) * rMin * (sin(0.85 * breathing) + rMax)); 
            var y = (r * sin(a) * rMin * (sin(0.85 * breathing) + rMax));
            vertex.add(x, y);
        }
        vertex = polygon_sortangles(vertex);
        var col = palette[count % palette.length()];
        polygon(vertex, stroke=col+"33", fill="transparent", weight=2);
        count++;
    }
    phase += phaseInc;
    zoff += 0.01;
    breathing += breathingInc;

}

save("polygon.png");