xxxxxxxxxx
62
let numStars = 2;
let colors = [(255, 51, 0), (102, 102, 102), (0, 0, 0), (200, 200, 200)];
var r1 = 75;
var r2 = 65;
var distance = r1 / 4;
var numberOfCorners = 7;
var randomCornerLengths;
let points = true;
function setup() {
defineRandomCornerLenths();
console.log(randomCornerLengths);
createCanvas(windowWidth, windowHeight);
}
function defineRandomCornerLenths() {
randomCornerLengths = new Array(numberOfCorners); // creates a new Array, ergo a list of 0 elements of lenth numberOfCorners
for (let i = 0; i <= numberOfCorners; i++) {
randomCornerLengths[i] = Math.floor(Math.random() * distance) + r1;
}
}
function draw() {
background(255);
stroke(0);
noFill();
for (let i = 0; i < numStars; i++) {
push()
translate(width / 2, height / 2 + 200 * i)
//rotate(frameCount / 100);
star(0, 0, r1 * i, r2 * i, numberOfCorners); //x,y,diameter outer circle, diameter inner circle, numpoints
pop()
}
}
function star(x, y, rad1, rad2, numpoints) {
let ang = TWO_PI / (numpoints - 1);
let halfAng = ang / 2.0;
beginShape();
//fill(72, 139, 143);
let i = 0;
curveVertex(rad2, 0);
if (points) ellipse(rad2, 0, 5, 5);
for (let a = 0; a <= TWO_PI; a += ang) {
// i++;
let sx = x + cos(a) * rad2;
let sy = y + sin(a) * rad2;
curveTightness(-0.5);
curveVertex(sx, sy);
if (points) ellipse(sx, sy, 5, 5);
sx = x + cos(a + halfAng) * randomCornerLengths[i];
sy = y + y + sin(a + halfAng) * randomCornerLengths[i];
i++;
curveVertex(sx, sy);
if (points) ellipse(sx, sy, 5, 5);
}
//curveVertex(rad2, 0);
//if (points) ellipse(rad2, 0, 5, 5);
endShape();
}