Fusión de Flujo (Mi regalo de Reyes Magos para todos Vosotros) (2/3)
CÓDIGO
//(C)Sergio Salazar Latorre
// FDF - Fusion de Flujo
let l = 600
let np = 100
let c = Array(np)
let s = Array(np)
function setup() {
createCanvas(l,l);
for(let i=0; i<np; i++){
c[i] = new FDF(random(0,l),
random(0,l),
1)
s[i] = new FDF(random(0,l),
random(0,l),
2)
}
}
function draw() {
background(0);
noFill()
stroke(255)
for(let i=0; i<np; i++){
c[i].dibuja()
s[i].dibuja()
}
firma()
}
class FDF
{
constructor(x,y,cc){
this.x=x
this.y=y
this.cc=cc
this.D=random(10,80)
this.r=this.D/2
this.naD=this.D*5/8
this.na2D=this.D*3/8
this.nar=this.r*5/8
this.na2r=this.r*3/8
this.cD=1
}
dibuja(){
//cc=1 circulo
//cc=2 cuadrado
if(this.cc==1){
this.dibujaCirculo()
} else if(this.cc==2){
this.dibujaCuadrado()
}
}
dibujaCirculo(){
this.prepararMovimiento(1)
circle(this.x, this.y, this.D*this.cD)
}
dibujaCuadrado(){
this.prepararMovimiento(2)
square(this.x, this.y, this.D)
}
prepararMovimiento(cm){
//cm=1 utilizar funcion sin() para variar el diametro
//cm=2 caer y continuar por arriba
if(cm==1){
this.mDiametro()
} else if(cm==2){
this.mCaer()
}
}
mDiametro(){
let frecuencia=0.02
this.cD = sin(frameCount*frecuencia+1*
dist(this.x, this.y, l/2, l/2))
}
mCaer(){
this.y++
if (this.y>l){
this.y=0
}
}
}
function firma(){
push()
fill(255,0,0)
strokeWeight(3)
stroke(255)
text("FDF - Fusión de Flujo - 002 - Creacion de Movimiento", 10, l-9*2)
text("(C)Sergio Salazar Latorre", 10, l-5)
pop()
}
Comentarios
Publicar un comentario