Mostrando entradas con la etiqueta Processing. Mostrar todas las entradas
Mostrando entradas con la etiqueta Processing. Mostrar todas las entradas

miércoles, 6 de septiembre de 2017

Experimentación

No entiendo nada de nada. La programación es muy compleja. 
El programa nos permite ver ejemplos de ejercicios de programación para entender más o menos cómo se compone un programa y lo que hace cada una de las funciones. De momento me puse a ver qué pasaba aunque sinceramente no entiendo nada. Del programa anterior modifiqué dos o tres cosas, casi nada en realidad. No hace la gran cosa y en realidad no alcanzo a vislumbrar qué puedo lograr con esto.
Las tecnologías nunca han sido mi fuerte, en realidad, por lo que se me complica bastante. Tendré que practicar más en la semana.



miércoles, 30 de agosto de 2017

Mi Segundo Programa (2)

Ahora hicimos una especie de 'videojuego' que lleva a cuenta la cantidad de cuadritos aleatoriamente generados que desaparecen al pasar por ellos el mouse en la ventana. Tiene más instrucciones complejas que el anterior y es mucho más dinámico, aquí el código tal cuál lo copiamos:

//DECLARACIÓN DE VARIABLES

float posX[];
float posY[];
int matados [];
float angulos [];
int numrect=500;
int puntaje=0;
PFont miletrica;

//CONFIGURACIÓN O 'SETUP'

void setup (){
  size(400,400,P3D);
  background(255);
  noStroke();
  posX=new float[numrect];
  posY=new float[numrect];
  angulos=new float[numrect];
  matados=new int[numrect];
  for(int i=0;i<numrect;i=i+1){
    posX[i]=random(380);
    posY[i]=random(30);
    matados[i]=0;
    angulos[i]=0;
  }
  //miletrica=loadFont("Univers45.vlw");
  //textFont(miletrica,18);
}

//FUNCIONES

void draw(){
  puntaje=0;
  background(255);
  for(int i=0;i<numrect;i=i+1){
    posY[i]=posY[i]+random(0.01*i);
    angulos[i]=angulos[i]+random(0.001*i);
  }
  
  for(int i=0;i<numrect;i=i+1){
    if(matados[i]==0){
      pushMatrix(); //esta variable declara que cada uno de los cuadritos se mueva independientemente.
      translate(posX[i],posY[i]);
      rotate(angulos[i]);
      if(dist(mouseX,mouseY,posX[i],posY[i])<20){
        fill(230,0,130,150);
        matados[i]=1;
        rect(0,0,20,20);
      }
      
      else{
        fill(170+random(-60,60),130+random(-80,80),0);
        rect(0,0,10,10);
      }
      popMatrix(); 
    }
  }
  for(int i=0;i<numrect;i=i+1){
    puntaje=puntaje+matados[i];
  }
  println(puntaje);
  fill(230,0,130);
  text("Puntaje:"+puntaje,10,390);
}






       

Mi Segundo Programa

O para ser más exactos, unas ligeras modificaciones al primero.
Esta vez, usando el programa que creamos la vez pasada creamos una espiral modificando tres líneas del código.  Aquí el Código y las capturas de Pantalla.


//DECLARACIÓN DE VARIABLES

ArrayList points;
int counter;
double step, theta;
PVector dummy;

//CONFIGURACIÓN (PARTE DE ELLA)

void setup(){
  frameRate(6);//Intrucción para acelerar la ejecución
  size(1000,1000); //esta parte define el tamaño de la ventana.
  //background(255);
  stroke (random(0,100),random(0,250),random(0,210)); //Con una sola cifra se manejan grises, con tres cifras se manejan colores de rojo, verde y azul.
  fill(156,030,600);//Igual que en el 'bakground', este maneja el color de la línea.
  points=new ArrayList();
  dummy=new PVector(0,0);
  counter=0;
  theta=0;
  step=Math.PI/40;
}

//'LOOP' O CICLO QUE SE EJECUTA MIENTRAS ESTÉ ACTIVO EL RPOPGRAMA

void draw(){
  float actx=0;
  float acty=0;
float h=150;
float k=150;
float r=counter; //Cambiando 'counter' por '50', la espiral regresa a ser círculo
background(random(0,255),random(0,100),random(0,100));//Con una sola cifra se manejan grises, con tres cifras se manejan colores de rojo, verde y azul.
actx=h;
acty=h;
//for(float theta=0; theta<2*Math.PI;theta+=step)
//if(theta<2*Math.PI) //Controla el número de vueltas que da el dibujo
float x=(float)(h+r*Math.cos(theta));
float y=(float)(k-r*Math.sin(theta));
//point(x,y);
pint p=new pint(x,y,counter);points.add(p);
points.add(p);
ellipse(x,y,30,30);//Cambia el tamaño del puntero (circulito que dibuja al círculo blanco)
counter++;
theta+=step;
trace();


//'FUNCIONES' O DEFINICIÓN DE CLASE

}
void trace(){
  for(int i=0;i<points.size()-2;i++){
    pint p1=(pint)points.get(i);
    pint p2=(pint)points.get(i+1);
    if(p1.index==p2.index-1)
    line(p1.x,p1.y,p2.x,p2.y);
  }
}
class pint extends PVector{
  float x,y;
  float index;
  
  pint(float x_,float y_,float i){
    x=x_;
    y=y_;
    index=i;
  }
}






El fondo del programa y el color del puntero cambian aleatoriamente cuando se ejecuta.

Ana C.C.

miércoles, 23 de agosto de 2017

Primer acercamiento a la creación de Códigos de Programación

Existe una página llamada OpenProcessing donde programadores de todos lados cargan códigos que resultan en imágenes de todo tipo al ejecutarse; estos programas son creados, a su vez, por medio de una plataforma de programación llamada Processing. Esa plataforma la tenemos instalada en las máquinas de la Sala Multimedia de la escuela y en la sesión de hoy el profesor nos dio un código para copiar en dicho programa explicándonos qué acciones realizaba cada comando y cada signo de puntuación. El resultado de dicho código fue un círculo negro pequeño que a su vez trazaba uno más grande blanco. 
Se trataba de separar por líneas comandos específicos para que el resultante fuera el deseado partiendo del tamaño de la ventana, el color de fondo y el tamaño del puntero, hasta la forma que dibujamos en sí.
El ejercicio llevó hora y media y todavía no entiendo mucho, pero por lo mientras aquí están las capturas de pantalla de dicho código con algunas notas. 
Con algo más de práctica pronto podré entender más detalladamente el proceso y con algo de suerte me será útil en un futuro, aunque este tipo de disciplinas no son lo que busco en mi carrera, pero entenderlas jamás sale sobrando.
Ana. C.C.