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.
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);
}
}