mirror of
https://gitlab.com/MisterBiggs/Resume.git
synced 2025-06-16 01:16:39 +00:00
give mouse gravity
This commit is contained in:
parent
82d7d557f7
commit
1a0817ddff
19
p5/mover.js
19
p5/mover.js
@ -12,10 +12,25 @@ class Mover {
|
||||
this.vel = createVector(vx, vy);
|
||||
this.acc = createVector(0, 0);
|
||||
this.mass = m;
|
||||
this.r = sqrt(this.mass) * 0.75;
|
||||
this.r = sqrt(this.mass) * 1;
|
||||
this.col = color(255);
|
||||
}
|
||||
|
||||
mouse_mass() {
|
||||
if (focused) {
|
||||
let force = p5.Vector.sub(createVector(mouseX, mouseY), this.pos);
|
||||
let distanceSq = constrain(force.magSq(), 10, 1000);
|
||||
let G = 3;
|
||||
let strength = (G * this.mass * 50) / distanceSq;
|
||||
force.setMag(strength);
|
||||
this.applyForce(force);
|
||||
|
||||
// noStroke();
|
||||
// fill("lightgreen");
|
||||
// ellipse(mouseX, mouseY, 30);
|
||||
}
|
||||
}
|
||||
|
||||
attract(other) {
|
||||
let force = p5.Vector.sub(this.pos, other.pos);
|
||||
let distanceSq = constrain(force.magSq(), 10, 1000);
|
||||
@ -60,4 +75,4 @@ class Mover {
|
||||
fill(this.col);
|
||||
ellipse(this.pos.x, this.pos.y, this.r * 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
31
p5/sketch.js
31
p5/sketch.js
@ -9,27 +9,42 @@ let movers = [];
|
||||
let attractor;
|
||||
var canvas;
|
||||
|
||||
function windowResized(){
|
||||
function windowResized() {
|
||||
resizeCanvas(windowWidth, windowHeight);
|
||||
}
|
||||
|
||||
function setup() {
|
||||
canvas = createCanvas(windowWidth, windowHeight);
|
||||
canvas.position(0, 0);
|
||||
canvas.style("z-index", "-1")
|
||||
canvas.style("z-index", "-1");
|
||||
|
||||
movers[0] = new Mover(width/4, height, 5, -5, 55);
|
||||
movers[0].col = color('red');
|
||||
movers[1] = new Mover(3*width/4, height, -5, -5, 50);
|
||||
movers[1].col = color('white');
|
||||
movers[2] = new Mover(2*width/4, height, -5, -5, 45);
|
||||
movers[2].col = color('blue');
|
||||
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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user