Diferencia entre revisiones de «Miguel Angel Adofacci - Proyecto I E 2017»

De Casiopea
Sin resumen de edición
Sin resumen de edición
Línea 11: Línea 11:
<pre>
<pre>
<nowiki>
<nowiki>
float grad;
float grad;
float gradvel;
float gradvel;
Línea 16: Línea 17:
boolean rot = false;
boolean rot = false;
Punto[] puntos = new Punto[5];
Punto[] puntos = new Punto[5];


void setup() {
void setup() {
Línea 47: Línea 47:
   println("distancia" + round(dist(puntos[1].xpos, puntos[1].ypos, puntos[3].xpos, puntos[3].ypos)));
   println("distancia" + round(dist(puntos[1].xpos, puntos[1].ypos, puntos[3].xpos, puntos[3].ypos)));
}
}
//valores de cada punto


//encendido y apagado
//encendido y apagado
Línea 69: Línea 63:


===Pestaña Objeto===
===Pestaña Objeto===
<div class="toccolours mw-collapsible mw-collapsed">
<div class="toccolours mw-collapsible mw-collapsed">
<pre>
<pre>
Línea 126: Línea 121:
   grad += gradvel;
   grad += gradvel;


  println("coordenadas" + round(puntos[2].xpos - puntos[3].xpos), round( puntos[2].ypos - puntos[3].ypos));
//  println("coordenadas" + round(puntos[2].xpos - puntos[3].xpos), round( puntos[2].ypos - puntos[3].ypos));
  println("distancia" + round(dist(puntos[2].xpos, puntos[2].ypos, puntos[3].xpos, puntos[3].ypos)));
// println("distancia" + round(dist(puntos[2].xpos, puntos[2].ypos, puntos[3].xpos, puntos[3].ypos)));


   translate(puntos[1].xpos, puntos[1].ypos);
   translate(puntos[1].xpos, puntos[1].ypos);
Línea 134: Línea 129:
   line(0, 0, v1.x, v1.y);
   line(0, 0, v1.x, v1.y);
}
}
//valores de cada punto


//encendido y apagado
//encendido y apagado
Línea 164: Línea 153:
}
}
</processingjs>
</processingjs>


</div>
</div>
===Pestaña Programa 02===
===Pestaña Programa 02===


Línea 171: Línea 163:
<pre>
<pre>
<nowiki>
<nowiki>
float grad;
float grad;
float grad1;
float gradvel;
float gradvel;
float r;
float r;
int i =1;
boolean rot = false;
boolean rot = false;
Punto[] puntos = new Punto[5];
Punto[] puntos = new Punto[5];
Línea 182: Línea 177:
   r = height;
   r = height;
   grad=0;
   grad=0;
   gradvel = 0.01;
  grad1=0;
   gradvel = 0.1;
}
}


Línea 189: Línea 185:


   puntos[0] = new Punto ((width/10)*3, height/10*9);
   puntos[0] = new Punto ((width/10)*3, height/10*9);
   puntos[1] = new Punto (r*0.5*(cos(grad))+((width/10)*3), r*0.5*(sin(grad))+((height/10)*9));
   puntos[1] = new Punto (r* 0.5*(sin(radians(grad)))+((width/10)*3), r* -0.5*(cos(radians(grad)))+((height/10)*9));


   puntos[2] = new Punto (((width/10)*7), height/10*9);
   puntos[2] = new Punto (((width/10)*7), height/10*9);
   puntos[3] = new Punto (r* 0.5*(cos(grad))+((width/10)*7), r*0.5*(sin(grad))+(height/10*9));
   puntos[3] = new Punto (r* 0.5*(sin(radians(grad1-53.13)))+((width/10)*7), r* -0.5*(cos(radians(grad1-53.13)))+((height/10)*9));


   puntos[4] = new Punto ((puntos[1].xpos +puntos[3].xpos)/2, (puntos[1].ypos +puntos[3].ypos)/2);
   puntos[4] = new Punto ((puntos[1].xpos +puntos[3].xpos)/2, (puntos[1].ypos +puntos[3].ypos)/2);
Línea 202: Línea 198:
   line(puntos[1].xpos, puntos[1].ypos, puntos[3].xpos, puntos[3].ypos);
   line(puntos[1].xpos, puntos[1].ypos, puntos[3].xpos, puntos[3].ypos);


ellipseMode(CENTER);
if (grad >53.13 || grad < 0) i=-1*i;
fill(0,0,255,100);
  grad = grad + i*0.5;
ellipse(puntos[1].xpos,puntos[1].ypos,height*0.4, height*0.4);
 
  //velocidad de giro
//  println("distancia" + round(dist(puntos[1].xpos, puntos[1].ypos, puntos[3].xpos, puntos[3].ypos)));
  grad += gradvel;
}
}


Línea 217: Línea 212:
//encendido y apagado
//encendido y apagado
void keyPressed () {
void keyPressed () {
   if (gradvel == 0.01) {
   if (gradvel == 0.1) {
     gradvel = 0;
     gradvel = 0;
   } else {
   } else {
     gradvel = 0.01;
     gradvel = 0.1;
  }
}
 
class Punto {
  float xpos, ypos;
  Punto (float x, float  y) {
    xpos =x;
    ypos =y;
 
 
    noStroke();
    fill(29, 126, 236);
    ellipseMode(CENTER);
    ellipse(x, y, width/80, height/80); //dibuja un círculo en la posicion de cada punto
   }
   }
}
}
</nowiki>
</nowiki>
</pre>
</pre>
Línea 229: Línea 239:
<div class="toccolours mw-collapsible mw-collapsed">
<div class="toccolours mw-collapsible mw-collapsed">
<processingjs>
<processingjs>
float grad;
float grad;
float grad1;
float grad1;
Línea 266: Línea 277:
   grad = grad + i*0.5;
   grad = grad + i*0.5;


  println("distancia" + round(dist(puntos[1].xpos, puntos[1].ypos, puntos[3].xpos, puntos[3].ypos)));
//  println("distancia" + round(dist(puntos[1].xpos, puntos[1].ypos, puntos[3].xpos, puntos[3].ypos)));
}
}



Revisión del 09:56 27 jun 2017



TítuloProyecto Imagen Escrita - Simulación de Acoplamiento Mecánico
AsignaturaImagen Escrita 2017
Del CursoImagen Escrita
CarrerasDiseño Industrial"Diseño Industrial" is not in the list (Arquitectura, Diseño, Magíster, Otra) of allowed values for the "Carreras Relacionadas" property.
Alumno(s)Miguel Angel Adofacci

Pestaña Programa 01



float grad;
float gradvel;
float r;
boolean rot = false;
Punto[] puntos = new Punto[5];

void setup() {
  size(500, 500);
  r = height;
  grad=0;
  gradvel = 0.01;
}

void draw() {
  background(255);

  puntos[0] = new Punto ((width/10)*3, height/10*9);
  puntos[1] = new Punto (r* 0.5*(sin(grad))+((width/10)*3), r* -0.5*(cos(grad))+((height/10)*9));

  puntos[2] = new Punto (((width/10)*7), height/10*9);
  puntos[3] = new Punto (r* 0.5*(cos(grad+36.07+180))+((width/10)*7), r*-0.5*(sin(grad+36.07+180))+(height/10*9));

  puntos[4] = new Punto ((puntos[1].xpos +puntos[3].xpos)/2, (puntos[1].ypos +puntos[3].ypos)/2);

  stroke(255, 0, 0 );
  line(puntos[0].xpos, puntos[0].ypos, puntos[1].xpos, puntos[1].ypos);
  line(puntos[2].xpos, puntos[2].ypos, puntos[3].xpos, puntos[3].ypos);
  stroke (0, 0, 255);
  line(puntos[1].xpos, puntos[1].ypos, puntos[3].xpos, puntos[3].ypos);
  //velocidad de giro
  grad += gradvel;


  println("distancia" + round(dist(puntos[1].xpos, puntos[1].ypos, puntos[3].xpos, puntos[3].ypos)));
}

//encendido y apagado
void keyPressed () {
  if (gradvel == 0.01) {
    gradvel = 0;
  } else {
    gradvel = 0.01;
  }
}



Pestaña Objeto


class Punto {
  float xpos, ypos;
  Punto (float x, float  y) {
    xpos =x;
    ypos =y;
   

    noStroke();
    fill(29, 126, 236);
    ellipseMode(CENTER);
    ellipse(x, y, width/80, height/80); //dibuja un círculo en la posicion de cada punto
  }
}


Prueba Acoplamiento de Hoekens

<processingjs> float grad; float gradvel; float r; boolean rot = false; Punto[] puntos = new Punto[5];


void setup() {

 size(500, 500);
 r = height;
 grad=0;
 gradvel = 0.01;

}

void draw() {

 background(255);
 puntos[0] = new Punto ((width/10)*3, height/10*7);
 puntos[1] = new Punto (r* 0.1*(cos(grad))+((width/10)*3), r* 0.1*(sin(grad))+((height/10)*7));


 puntos[2] = new Punto (((width/10)*5), height/10*7);
 puntos[3] = new Punto (r* 0.25*(cos(grad+113.58+180))+((width/10)*5), r*0.25*(sin(grad+113.58+180))+(height/10*7));
 stroke(255, 0, 0 );
 line(puntos[0].xpos, puntos[0].ypos, puntos[1].xpos, puntos[1].ypos);
 line(puntos[2].xpos, puntos[2].ypos, puntos[3].xpos, puntos[3].ypos);
 line(puntos[1].xpos, puntos[1].ypos, puntos[3].xpos, puntos[3].ypos);


 //velocidad de giro
 grad += gradvel;

// println("coordenadas" + round(puntos[2].xpos - puntos[3].xpos), round( puntos[2].ypos - puntos[3].ypos)); // println("distancia" + round(dist(puntos[2].xpos, puntos[2].ypos, puntos[3].xpos, puntos[3].ypos)));

 translate(puntos[1].xpos, puntos[1].ypos);
 PVector v1 = new PVector(puntos[3].xpos, puntos[3].ypos);
 // PVector v2 = PVector.mult(v1, 2);
 line(0, 0, v1.x, v1.y);

}

//encendido y apagado void keyPressed () {

 if (gradvel == 0.01) {
   gradvel = 0;
 } else {
   gradvel = 0.01;
 }

}

class Punto {

 float xpos, ypos;
 Punto (float x, float  y) {
   xpos =x;
   ypos =y;
  
   noStroke();
   fill(29, 126, 236);
   ellipseMode(CENTER);
   ellipse(x, y, width/80, height/80); //dibuja un círculo en la posicion de cada punto
 }

} </processingjs>


Pestaña Programa 02



float grad;
float grad1;
float gradvel;
float r;
int i =1;
boolean rot = false;
Punto[] puntos = new Punto[5];


void setup() {
  size(500, 500);
  r = height;
  grad=0;
  grad1=0;
  gradvel = 0.1;
}

void draw() {
  background(255);

  puntos[0] = new Punto ((width/10)*3, height/10*9);
  puntos[1] = new Punto (r* 0.5*(sin(radians(grad)))+((width/10)*3), r* -0.5*(cos(radians(grad)))+((height/10)*9));

  puntos[2] = new Punto (((width/10)*7), height/10*9);
  puntos[3] = new Punto (r* 0.5*(sin(radians(grad1-53.13)))+((width/10)*7), r* -0.5*(cos(radians(grad1-53.13)))+((height/10)*9));

  puntos[4] = new Punto ((puntos[1].xpos +puntos[3].xpos)/2, (puntos[1].ypos +puntos[3].ypos)/2);

  stroke(255, 0, 0 );
  line(puntos[0].xpos, puntos[0].ypos, puntos[1].xpos, puntos[1].ypos);
  line(puntos[2].xpos, puntos[2].ypos, puntos[3].xpos, puntos[3].ypos);
  stroke (0, 0, 255);
  line(puntos[1].xpos, puntos[1].ypos, puntos[3].xpos, puntos[3].ypos);

 if (grad >53.13 || grad < 0) i=-1*i;
  grad = grad + i*0.5;

//  println("distancia" + round(dist(puntos[1].xpos, puntos[1].ypos, puntos[3].xpos, puntos[3].ypos)));
}



//valores de cada punto



//encendido y apagado
void keyPressed () {
  if (gradvel == 0.1) {
    gradvel = 0;
  } else {
    gradvel = 0.1;
  }
}

class Punto {
  float xpos, ypos;
  Punto (float x, float  y) {
    xpos =x;
    ypos =y;
   

    noStroke();
    fill(29, 126, 236);
    ellipseMode(CENTER);
    ellipse(x, y, width/80, height/80); //dibuja un círculo en la posicion de cada punto
  }
}


<processingjs>

float grad; float grad1; float gradvel; float r; int i =1; boolean rot = false; Punto[] puntos = new Punto[5];


void setup() {

 size(500, 500);
 r = height;
 grad=0;
 grad1=0;
 gradvel = 0.1;

}

void draw() {

 background(255);
 puntos[0] = new Punto ((width/10)*3, height/10*9);
 puntos[1] = new Punto (r* 0.5*(sin(radians(grad)))+((width/10)*3), r* -0.5*(cos(radians(grad)))+((height/10)*9));
 puntos[2] = new Punto (((width/10)*7), height/10*9);
 puntos[3] = new Punto (r* 0.5*(sin(radians(grad1-53.13)))+((width/10)*7), r* -0.5*(cos(radians(grad1-53.13)))+((height/10)*9));
 puntos[4] = new Punto ((puntos[1].xpos +puntos[3].xpos)/2, (puntos[1].ypos +puntos[3].ypos)/2);
 stroke(255, 0, 0 );
 line(puntos[0].xpos, puntos[0].ypos, puntos[1].xpos, puntos[1].ypos);
 line(puntos[2].xpos, puntos[2].ypos, puntos[3].xpos, puntos[3].ypos);
 stroke (0, 0, 255);
 line(puntos[1].xpos, puntos[1].ypos, puntos[3].xpos, puntos[3].ypos);
if (grad >53.13 || grad < 0) i=-1*i;
 grad = grad + i*0.5;

// println("distancia" + round(dist(puntos[1].xpos, puntos[1].ypos, puntos[3].xpos, puntos[3].ypos))); }


//valores de cada punto


//encendido y apagado void keyPressed () {

 if (gradvel == 0.1) {
   gradvel = 0;
 } else {
   gradvel = 0.1;
 }

}

class Punto {

 float xpos, ypos;
 Punto (float x, float  y) {
   xpos =x;
   ypos =y;
  
   noStroke();
   fill(29, 126, 236);
   ellipseMode(CENTER);
   ellipse(x, y, width/80, height/80); //dibuja un círculo en la posicion de cada punto
 }

}

</processingjs>


Complicaciones

Al utilizar más de un punto de rotación en el mismo programa,y a su vez usar funciones dependientes de valores de diversos objetos (líneas que unen las coordenadas de un objeto con otro), no se puede utilizar la función translate() o rotate(), ya que cambian todo el sistema de coordenadas (incluído el utilizar coordenadas previamente declaradas), mientras que al no utilizar la función rotate(), la complejidad yace en calcular el ángulo de diferencia entre dos ejes distintos sin crear desformaciones al transformar coordenadas polares en cartesianas.