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
Publicar un comentario