xxxxxxxxxx
93
// let notes= []
// let sizes= []
let fibonacci= []
let FIBONACCI_MAX=100
let SCALE_CIRCLES=0.01
let a=0
let b=1
let c
let systems=[]
function setup() {
createCanvas(500, 500);
fillFibonacci()
for (i=0 ; i<5 ; i++){
let s = new fiboCircle (random(width), random(height), random(300), 10, random(255));
systems.push(s);
}
// coolCircle= new fiboCircle (100, 100, 100, 10, 10)
print (fibonacci[0])
}
function draw() {
background(0);
// coolCircle.show();
// coolCircle.getPositionsForCircles();
for (let s in systems){
systems[s].show();
systems[s].getPositionsForCircles();
}
}
function fillFibonacci ()
{
for (i=0;i<FIBONACCI_MAX;i++){
c = a + b;
a = b;
b = c;
fibonacci[i]=c
}
}
class fiboCircle {
constructor (posX,posY,size, iterations, colourReal) {
this.posX=posX
this.posY=posY
this.size=size
this.colourReal=colourReal
this.iterations=iterations
}
// defineColour(){
// this.colR=fibonacci[i]*(SCALE_CIRCLES*this.colourReal);
// this.colG=(fibonacci[i]*i)*(SCALE_CIRCLES*this.colourReal);
// this.colB=(i*3)*(SCALE_CIRCLES*this.colourReal);
// }
getPositionsForCircles(){
this.complexPosX=(this.posX)+((mouseX-(this.posX))*i)/(fibonacci[i])
this.complexPosY=(this.posY)+((mouseY-(this.posY))*i)/(fibonacci[i])
}
// defineCircleSizes(){
// // this.complexSize=
// }
show (){
this.getPositionsForCircles()
for(i=this.iterations ; i>=2; i--){
// fill(this.colR,this.colG,this.colB,150)
strokeWeight (i*0.3)
fill (this.colourReal,fibonacci[i]*this.colourReal,i*this.colourReal,100)
ellipse ((this.posX)+((mouseX-(this.posX))*i)/(fibonacci[i]), (this.posY)+((mouseY-(this.posY))*i)/(fibonacci[i]), (fibonacci[i])*(this.size*SCALE_CIRCLES), (fibonacci[i])*(this.size*SCALE_CIRCLES))
// ellipse (this.complexPosX, this.complexPosY, (fibonacci[i])*(this.size*SCALE_CIRCLES), (fibonacci[i])*(this.size*SCALE_CIRCLES))
}
}
movement(){
// this.closenessX=(abs(mouseX-this.posX))
// this.closenessY=(abs(mouseY-this.posY))
// this.speedX=5/this.closenessX
// this.speedY=5/this.closenessY
// this.posX=this.posX+this.speedX
// this.posY=this.posY+this.speedY
}
}