xxxxxxxxxx
let attrX;
let attrY;
let g=0.0000009
let particleCount=500
let particle=[];
let c=50;
let r;
let distance;
function setup() {
createCanvas(windowWidth,windowHeight);
attrX=width/2
attrY=height/2
for (let i=0;i<particleCount;i++) {
r=random(50,250)
randomVector=createVector(0,r)
randomVector.rotate(random(TWO_PI))
let x = randomVector.x+attrX
let y = randomVector.y+attrY
particle[i]=new particles(x,y,cos(randomVector.heading()),PI/2)
}
colorMode(HSB)
background(0)
}
function draw() {
colorMode(RGB,360,100,100,255)
background(0,15)
colorMode(HSB,360,100,100,0)
fill(0)
for (let i=0;i<particleCount;i++) {
particle[i].move();
particle[i].display();
}
}
class particles {
constructor(x,y,velMag,angle) {
this.pos=createVector(x,y)
this.vel=createVector(this.pos.x-attrX,this.pos.y-attrY)
this.vel.rotate(angle)
this.vel.setMag(velMag)
this.pastPos=createVector(0,0)
this.kill=0
}
move() {
this.pastPos.set(this.pos)
this.accel=createVector(this.pos.x-attrX,this.pos.y-attrY)
distance=dist(this.pos.x,this.pos.y,attrX,attrY)
distance=distance*distance
this.accel.setMag(-g*distance)
this.vel.add(this.accel)
this.pos.add(this.vel)
}
display() {
stroke(dist(this.pos.x,this.pos.y,attrX,attrY)+sin(frameCount/100)*100,98,this.vel.mag()*80)
line(this.pos.x,this.pos.y,this.pastPos.x,this.pastPos.y)
}
}