xxxxxxxxxx
121
const stars = []
function setup() {
createCanvas(400, 400);
// wow i couldn't have possibly thought how to do this in a loop
stars.push(new star(100,100,50,1,0.029));
stars.push(new star(200,200,50,2,0.029));
stars.push(new star(300,300,50,3,0.029));
stars.push(new star(300,200,50,4,0.06));
stars.push(new star(300,100,50,5,0.05));
stars.push(new star(200,100,50,6,0.04));
stars.push(new star(100,200,50,7,0.03));
stars.push(new star(100,300,50,8,0.02));
stars.push(new star(200,300,50,9,0.01));
}
class star{
constructor(x,y, size=50 ,t=0 , dt=0.08){
this.pos=createVector(x,y);
this.size = size;
this.t = t;
this.dt = dt;
}
update(){
this.t+=this.dt;
if (this.t > 255) {this.t=0}
}
draw3dFlawedRee () {
const size = this.size;
const t = this.t;
const [left, right] = [-PI+t, PI+t];
var [x,y] = [this.pos.x, this.pos.y];
for (var i = left; i < right; i+=this.dt) {
const ii = map(i, -PI+t, PI+t, -PI, PI)
var colm = -(25*ii*ii)+(5*ii) //-x^(2)+5x
noFill();
stroke(255,255,255,150+colm)
var xx = (cos(i)*(size*sin(ii)) + x);
var yy = (sin(i)*(size*cos(i)) + y);
line(x,y,xx,yy);
}
}
drawInfinity () {
const size = this.size;
const t = this.t;
const [left, right] = [-PI+t, PI+t];
var [x,y] = [this.pos.x, this.pos.y];
for (var i = left; i < right; i+=this.dt) {
const ii = map(i, -PI+t, PI+t, -PI, PI)
var colm = -(25*ii*ii)+(5*ii) //-x^(2)+5x
noFill();
stroke(255,255,255,150+colm)
var xx = (cos(i)*size + x);
var yy = (sin(i)*(size*cos(i)) + y);
line(x,y,xx,yy);
}
}
draw () {
const size = this.size;
const t = this.t;
const [left, right] = [-PI+t, PI+t];
var [x,y] = [this.pos.x, this.pos.y];
for (var i = left; i < right; i+=this.dt) {
const ii = map(i, -PI+t, PI+t, -PI, PI)
var colm = -(25*ii*ii)+(5*ii) //-x^(2)+5x
noFill();
stroke(255,255,255,150+colm)
var xx = (cos(i)*size + x);
var yy = (sin(i)*size + y);
line(x,y,xx,yy);
}
}
drawSpikey () {
const size = this.size;
const t = this.t;
const [left, right] = [-PI+t, PI+t];
var [x,y] = [this.pos.x, this.pos.y];
for (var i = left; i < right; i+=this.dt) {
const ii = map(i, -PI+t, PI+t, -PI, PI)
const ib = map(ii, -PI, PI, 0.25, 1)
var colm = -(25*ii*ii)+(5*ii) //-x^(2)+5x
noFill();
stroke(255,255,255,150+colm)
var xx = (cos(i)*(size*ib) + x);
var yy = (sin(i)*(size*ib) + y);
line(x,y,xx,yy);
}
}
}
function draw() {
background(220);
for (const [i,s] of stars.entries()){
s.update()
switch (i) {
case 0:
s.draw3dFlawedRee();
break;
case 1:
s.drawInfinity();
break;
case 3:
s.drawSpikey();
break;
default:
s.draw();
break
}
}
}