terça-feira, 14 de abril de 2015

Trabalho 1: Analise e Codificação da Logo da BMW

Logo BMW

Decidi reproduzir e analisar a logo da BMW por sua beleza e simplicidade.

A Logo da famosa de carros é formada por dois círculos:

Sendo o circulo do meio formado por quatro quartos de circulo, sendo dois brancos e dois azuis:

Somente com isso já é possível reconhecer a marca, fazendo uma analise dos raios dos círculos, considerando um modulo de 50px temos que o circulo interior teria 6 módulos de diâmetro, e o exterior teria 10 módulos, sabendo que o raio do circulo menor e 150px e o do maior é de 250px:

Para formar o circulo do meio usei a função arc(), tive que contornar alguns problemas dessa função, fazer um arco que comece em PI e termine em QUARTER_PI não funciona e o arco não aparece, mas colocando o equivalente em graus o arco aparece, mesmo problema quanto o arco começa em QUARTER_PI e termine em TWO_PI.

No mais foi bem rápida a reprodução da logo e estes foram os resultados:
Logo com a regra de criação final.

Logo com regra de criação Beta.

Logo seguindo o modelo de 1979.

Código-fonte:

int modulo=50;

void setup(){
    size(400,400);
   
}

void draw(){
    background(255);
    if(mousePressed){
    bmwLogo2(mouseX+45,mouseY+45,mouseX/16);
    }
}

void bmwLogo(int X,int Y){
   
    fill(0);
    ellipse(X,Y,10*modulo,10*modulo);
   
    stroke(255);
    strokeWeight(4);
    noFill();
    ellipse(X,Y,6*modulo,6*modulo);
   
    strokeWeight(1);
    //stroke(0);
    fill(77, 210, 255);
    arc(X, Y, 6*modulo, 6*modulo, 0, HALF_PI, PIE);
    arc(X, Y, 6*modulo, 6*modulo, PI, radians(270), PIE);
 
   fill(255);
    arc(X, Y, 6*modulo, 6*modulo, radians(270), TWO_PI,PIE);
    arc(X, Y, 6*modulo, 6*modulo, HALF_PI, PI, PIE);
   
}

void bmwLogo2(int X,int Y, int modulo){
 
    if(modulo>=1){

    fill(0);
    ellipse(X,Y,10*modulo,10*modulo);
   
    stroke(255);
    strokeWeight(4);
    noFill();
    ellipse(X,Y,6*modulo,6*modulo);
   
    strokeWeight(2);
    stroke(0);
    fill(77, 210, 255);
    arc(X, Y, 6*modulo, 6*modulo, 0, HALF_PI, PIE);
    arc(X, Y, 6*modulo, 6*modulo, PI, radians(270), PIE);
 
   fill(255);
    arc(X, Y, 6*modulo, 6*modulo, radians(270), TWO_PI,PIE);
    arc(X, Y, 6*modulo, 6*modulo, HALF_PI, PI, PIE);
 
   }
 
}

Nenhum comentário:

Postar um comentário