var
starPolygon = []
function
setup() {
createCanvas(800, 600);
let x = [440, 468, 534, 486, 498,
440, 382, 394, 346, 412];
let y = [230, 290, 300, 344, 410,
380, 410, 344, 300, 290];
for
(let i = 0; i < x.length; ++i)
starPolygon.push(createVector(x[i], y[i]));
}
function
rotatePolygon(vertices, degree){
degree = radians(degree);
for
(let i = 0; i < vertices.length; ++i) {
let x = vertices[i].x, y = vertices[i].y;
vertices[i].x = x*cos(degree)-y*sin(degree);
vertices[i].y = x*sin(degree)+y*cos(degree);
}
}
function
calcMidpoint(vertices) {
let midpoint = createVector(0, 0)
for
(let i = 0; i < vertices.length; i++)
midpoint.add(vertices[i]);
return
midpoint.div(vertices.length)
}
function
translatePolygon(vertices, x, y) {
for
(let i = 0; i < vertices.length; i++){
vertices[i].x += x;
vertices[i].y += y;
}
}
function
draw() {
background(255);
rotatePolygon(starPolygon,1);
drawPolygon(starPolygon);
let a = calcMidpoint(starPolygon);
translatePolygon(starPolygon, 400-a.x, 300-a.y)
}
function
drawPolygon(vertices) {
beginShape();
for
(let i = 0; i < vertices.length; ++i)
vertex(vertices[i].x, vertices[i].y);
fill(255, 217, 0);
endShape(CLOSE);
}