// Gravitational Attraction // The Nature of Code // The Coding Train / Daniel Shiffman // https://youtu.be/EpgB3cNhKPM // https://thecodingtrain.com/learning/nature-of-code/2.5-gravitational-attraction.html // https://editor.p5js.org/codingtrain/sketches/MkLraatd let movers = []; let attractor; var canvas; function windowResized() { resizeCanvas(windowWidth, windowHeight); } function setup() { canvas = createCanvas(windowWidth, windowHeight); canvas.position(0, 0); canvas.style("z-index", "-1"); movers[0] = new Mover(10, 10, 5, -5, 50); movers[0].col = color("red"); movers[1] = new Mover(width / 2, height / 2, -5, -5, 60); movers[1].col = color("white"); movers[2] = new Mover(width - 10, height - 10, -5, -5, 40); movers[2].col = color("blue"); // Gay Mode // movers[0] = new Mover(0, 0, 5, -5, 50); // movers[0].col = color('#D12229'); // movers[1] = new Mover(width/5, height/5, -5, -5, 50); // movers[1].col = color('#F68A1E'); // movers[2] = new Mover(2*width/5, 2*height/5, -5, -5, 50); // movers[2].col = color('#FDE01A'); // movers[3] = new Mover(3*width/5, 3*height/5, -5, -5, 50); // movers[3].col = color('#007940'); // movers[4] = new Mover(4*width/5, 4*height/5, -5, -5, 50); // movers[4].col = color('#24408E'); // movers[5] = new Mover(width, height, -5, -5, 50); // movers[5].col = color('#732982'); background(0); } function draw() { background(0, 75); for (let mover of movers) { mover.mouse_mass(); for (let other of movers) { if (mover !== other) { mover.attract(other); } } } for (let mover of movers) { mover.update(); mover.edges(); mover.show(); } }