Proyecto Final: Teselación

De Casiopea
Proyecto Final: Teselación


TítuloProyecto Final: Teselación
Tipo de ProyectoProyecto de Taller
Palabras Claveproyecto final
Período2012-
AsignaturaTaller Inicial 1ª y 2ª Etapa,
Del CursoImagen Escrita 2012,
CarrerasArquitectura
Alumno(s)Juan Francisco Rojas
ProfesorHerbert Spencer

Proyecto Final

El proyecto final del curso Imagen Escrita consiste en la teselación de un plano euclídeo a partir de una figura geometrica (unidad discreta) finita. Este figura geometrica debe recubrir por completo el plano sin dejar huecos ni solapamientos. La teselación debe estar pensada para ser ocupada como stencil por lo que debe dejarse un espacio (ancho de línea) entre las figuras.

  • El proyecto presenta una evolución del primer intento Proyecto 2° Trimestre: Teselación
  • Luego de ser creada, en una primera instancia, la teselación en la página Escher Web Sketch, se crea la figura (unidad discreta) en Adobe Illustrator, donde es repetida hasta teselar el plano. El plano teselado es guardado en un archivo svg donde después es aplicado en processing.
  • El código es una modificación del código dado por el profesor.

Descargar el archivo: Medio:Juan Francisco Rojas Proyecto Final Teselacion.rar


import processing.pdf.*;

PShape s;
float Xspacer;    // espaciador horizontal
float Yspacer;         // espaciador vertical (altura del triángulo equilátero de lado Xspacer)
float margen = 100;    // margen... obvio
float tam = 20;         // tamaño de los puntos o elementos


void setup() {
  // calculo Yspacer por Pitágotas:
  Yspacer = sqrt( pow(Xspacer, 2) - pow(Xspacer, 2));
  s = loadShape("Tarea_Processing.svg");
  size(1000, 1000, PDF, "Proyecto_Final.pdf");
  noStroke();
  fill(0);
  smooth();
}

void draw() {
  background(255);
  
  float initX;      // inicio en X, que varía par-impar
  int rowCount = 0; // contador de filas
  int par;          // par es 0, impar 1

  for (float y = 0; y < height-margen; y+= s.height) {
    rowCount ++;    // cuento las filas
    par = rowCount % 2; // genero el número par (0 ó 1)
    if ( par == 0) {
      initX = margen; // defino el inicio de la fila adelantada
    }
    else {
      initX = margen; // defino el inicio de la fila "normal"
    }
    for (float x = initX; x < width - margen; x += s.width) {
      shape(s, x, y,s.width,s.height); 
    }
  }
  println("Listo. Presione Ctrl+k para ver el pdf");
  exit();
}