LydiaMACHINA Jungle

CONCEPTO BÁSICO 

En muchas ocasiones una misma maquina de dibujo nos ofrece muchas variantes de resultados debido a que la variación de las variables básicas nos arrojan resultados diferentes.

Es por ello que nos puede llegar a resultar muy interesante, no solamente parametrizar algunas variables claves dentro de nuestro programa sino, también parametrizar los valores iniciales que arrojan los resultados que mas nos complacen.

Es así como nace la idea de LydiaMACHINA. La idea de crear una clase que guarde la inicialiciacion de los parámetros que arrojan ciertos resultados, y que podamos invocar como llamadas a los métodos de una clase, es algo, no solamente muy util sino, ademas, que puede ayudarnos a explorar una mayor funcionalidad de nuestra creación. 



CÓDIGO 

//(C)Sergio Salazar Latorre

//LydiaMachinaCFcl

//Ejemplo de parametrizacion de la maquina de dibujo

let nE=100//numero de elementos

let nS=.9 //escalado de ruido

let nA=1000 //angulo del ruido

let nV=999 //velocidad del ruido

let aMax=500  //edad maxima

let p = Array(nE) //array de particulas

let l=500; //lado 

let n

let L


class LydiaMachina{

  constructor(){

    this.n = "LydiaMACHINA "

  }

  plumas(){

    nE=1000 //numero de elementos

    nS=0.003 //escalado de ruido

    nA=2000 //angulo del ruido

    nV=0.9 //velocidad del ruido

    aMax=500  //edad maxima

    this.n+="Plumas"

  }

  craquelado(){

    nE=1000 //numero de elementos

    nS=0.09 //escalado de ruido

    nA=900 //angulo del ruido

    nV=999999 //velocidad del ruido

    aMax=2000  //edad maxima

    this.n+="Craquelado"

  }

  soulEssence(){

    nE=1000 //numero de elementos

    nS=0.01 //escalado de ruido

    nA=370 //angulo del ruido

    nV=1 //velocidad del ruido

    aMax=2000  //edad maxima

    this.n+="SoulEssence"

  }

  topographic(){

    nE=1000 //numero de elementos

    nS=0.01 //escalado de ruido

    nA=9000 //angulo del ruido

    nV=100 //velocidad del ruido

    aMax=2000

    this.n+="Topographic"

  }

  jungle(){

    nE=1000 //numero de elementos

    nS=0.01 //escalado de ruido

    nA=4000 //angulo del ruido

    nV=100 //velocidad del ruido

    aMax=100  //edad maxima

    this.n+="Jungle"

  }

}


function setup() {

  L = new LydiaMachina()

  //L.craquelado()

  //L.topographic()

  L.jungle()

  //L.soulEssence()

  createCanvas(l, l); // canvas de lxl

  background(0); //fondo negro

  angleMode(DEGREES) //angulos en grados

  cargar()

  firma()

}

function firma(){

   n = L.n +

    int(random(0,12021966)) + 

    "    Dedicado a mi madre con todo mi amor"

}

function draw() {

  stroke(255, map(frameCount, 1, aMax, 0,100))

  push()

  for(let i=0; i<nE; i++){

    p[i].dibujarParticula()

  }


  fill(0,0,255)

  strokeWeight(4)

  stroke(0,255,255)

  text(n,10, l-10)

  pop()

}

class Particula{


  constructor(x,y){

    this.x=x //x

    this.y=y //y

    this.vx=random(-2,3) //velocidad x

    this.vy=random(-3,2) //velocidad y

  }


  dibujarParticula(){

    let n=nA*noise(nS*this.x, 

                  nS*this.y)


    this.vy = -cos(n)

    this.vx = sin(n)


    this.x += this.vx

    this.y += this.vy


    if(this.x<0 || this.x>l ||

      this.y<0 || this.y>l){

      this.x=random(0,l)

      this.y=random(0,l)

    }

    point(this.x, this.y)

  }

}

function ver(){

  for(let i=0; i<nE; i++){

    p[i].verParticula()

  }

}

function cargar(){

  for(let i=0; i<nE; i++){

    p[i] = new Particula(random(0,l),

                        random(0,l))

  }

}

Comentarios

Entradas populares