quinta-feira, 26 de novembro de 2015

Luis Sacliotto - Concretion 8469, 1984 - Apropriação e aplicação

A obra que escolhi foi essa escultura, Concretion 8469 de Luiz Sacliotto, ano 1984. Feita de alumínio, é composta de duas chapas padronizadas, interligadas por uma terceira chapa em forma de paralelogramo.



Abaixo, temos um desenho com a análise geométrica das chapas padronizadas:


São formadas por 10 pedaços de alumínio cortados geometricamente, dispostos de forma que nos faz lembrar o formato de um losango de altura e largura iguais (da forma do desenho acima). Considerando que m=h/10 (módulo igual à altura dividido por dez), os pedaços de alumino podem ser formados geometricamente por retângulos e triângulos retângulos. A composição geométrica de cada um desses pedaços (contando de cima para baixo) é a seguinte:

·         1 triângulo retângulo de catetos = m;
·         1 triângulo retângulo de catetos = m e 1 quadrado de lado=m;
·         1 retângulo de altura=m e largura=2m e 1 triângulo retângulo de catetos = m;
·         1 triângulo retângulo de cateto =m e um retângulo de altura=m e largura=3m;
·         1 retângulo de altura=m e largura=4m e 1 triângulo retângulo de catetos = m;
·         1 triângulo retângulo de catetos = m e 1 retângulo de altura=m e largura=4m;
·         1 retângulo de altura=m e largura=3m e 1 triângulo retângulo de catetos = m;
·         1 triângulo retângulo de catetos = m e 1 retângulo de altura=m e largura=2m;
·         1 quadrado de lado=m e 1 triângulo retângulo de catetos = m;
·         1 triângulo retângulo de catetos = m;

Minha aplicação desenvolvida no Processing se apropria da forma geométrica dessa chapa principal da escultura. Para isso, criei três funções: trianguloRetanguloA(x,y,l), trianguloRetanguloB(x,y,l), e Sacliotto(x,y,h). As duas primeiras foram criadas para auxiliar na construção do padrão, enquanto a terceira é o padrão em si.

trianguloRetanguloA(x,y,l) cria um triângulo retângulo com origem (x,y) no ângulo reto. Caso o valor de l seja positivo, a hipotenusa fica virada para o 4° quadrante. Se l for negativo, a hipotenusa fica virada para o 2° quadrante.
trianguloRetanguloB(x,y,l) também cria um triângulo retângulo com origem (x,y) no ângulo reto. Caso o valor de l seja positivo, a hipotenusa fica virada para o 3° quadrante. Se l for negativo, a hipotenusa fica virada para o 1° quadrante.

Sacliotto(x,y,h) cria o padrão da chapa principal da escultura na posição (x,y) e com altura h, levando em consideração a análise geométrica feita.


Com a forma apropriada da escultura, desenvolvi uma aplicação que cria uma tecelagem com o padrão na cor preta e o mesmo padrão na cor branca, que preenchem a tela da aplicação.


Resultado final:




CÓDIGO DA APLICAÇÃO COMPLETO E COMENTADO:
void trianguloRetanguloA(int x, int y, int l)
  // desenha triangulo retangulo no ponto(x,y)com origem no angulo reto.
{
  triangle(x, y, x, y+l, x+l, y);
}

void trianguloRetanguloB(int x, int y, int l)
  // desenha triangulo retangulo no ponto(x,y)com origem no angulo reto.
{
  triangle(x, y, x, y+l, x-l, y);
}

void Sacliotto(int x, int y, int h)
  // Cria o padrão de tamanho h nas coordenadas (x,y), de acordo com a análise geométrica.
{
  int m=h/10;//Definindo o módulo.

  //Pedaços do lado direito:
  trianguloRetanguloB(x, y-4*m, -m);
  rect(x, y-3*m, 2*m, m);
  trianguloRetanguloB(x+2*m, y-2*m, -m);
  rect(x, y-m, 4*m, m);
  trianguloRetanguloB(x+4*m, y, -m);
  rect(x, y+m, 3*m, m);
  trianguloRetanguloA(x+3*m, y+m, m);
  rect(x, y+3*m, m, m);
  trianguloRetanguloA(x+m, y+3*m, m);

  //Pedaços do lado esquerdo:
  rect(x-m, y-4*m, m, m);
  trianguloRetanguloA(x-m, y-3*m, -m);
  rect(x-3*m, y-2*m, 3*m, m);
  trianguloRetanguloA(x-3*m, y-m, -m);
  rect(x-4*m, y, 4*m, m);
  trianguloRetanguloB(x-4*m, y, m);
  rect(x-2*m, y+2*m, 2*m, m);
  trianguloRetanguloB(x-2*m, y+2*m, m);
  trianguloRetanguloB(x, y+4*m, m);
}
void setup() {
  size(500, 500); //Definindo o tamanho da tela da aplicação.
  noStroke();
  fill(0);
  background(128);
}
int x=0;
int y=0;
int h=100;// Definindo o tamanho dos padrões.
void draw() {
  fill(0);
  Sacliotto(x, y, h);
  //Cria um padrão preto na posição(x,y).
  fill(255);
  Sacliotto(x+h/2, y+h/2, h);
  /*Cria um padrão branco na posição (x+h/2,y+h/2).
   Dessa forma, os padrões brancos ficam sempre posicionados
   entre 4 padrões pretos, e vice versa.*/
  x+=h;
  // Incrementa x em h. Dessa forma, o padrão repete-se horizontalmente.
  if (x>width+h) {
    x=0;
    y+=h;
  }
  /* Incrementa y em h quando x>largura+h. Dessa forma, garantimos que
   independentemente do tamanho da tela da aplicação, o padrão se repita
   horizontalmente e verticalmente também, preenchendo completamente a tela.*/

  if (y>height && x>width) {
    stop();
  }
  /* Para a aplicação quando y>altura e x>largura da tela da aplicação,
   ou  seja, quando preencher completamente a tela*/

}

Nenhum comentário:

Postar um comentário