domingo, 12 de abril de 2015

TRABALHO - Criação do logotipo "Robot Android".

O logotipo "Robot Android" é um robôzinho verde que acompanha a maioria dos produtos da marca Android e ele é formado basicamente por formas geométricas simples (Círculos e Retângulos), porém que juntas criam uma imagem fluída e interessante.

A princípio, para definir meus módulos e como era feito o logo, eu fui no site da google procurar algo sobre o logotipo.. porém eles não tem um "manual" propriamente dito de criação, eles apenas disponibilizam a logotipo em um arquivo editável. Curioso com a forma de criação da logo, eu resolvi tentar me comunicar com a criadora original, a russa Irina Blok, que junto com a equipe de design da google, foi a responsável principal da criação do logo. Então mandei um e-mail para ela perguntando se ela havia usado formas geométricas e matemática na criação do logo... sem muitas esperanças, porém um tempo depois ela me respondeu.

Primeiro e-mail trocado com a criadora da logo.

Segundo e-mail trocado com a criadora da logo.


Então ela me diz que não usou matemática nenhuma para fazer a logo, que as decisões foram feitas visualmente. O que faz com que as medidas da logo tenham valores não muito simétricos, porém não significa que as formas não podem se ligar de alguma maneira.
Utilizando basicamente, círculos e retângulos na figura original, eu consegui achar outras figuras geométricas que se formavam na junção das duas formas principais... consegui estabelecer alguns trapézios e triângulos. Foi usado também diagonal do retângulo para estabelecer o tamanho das antenas.. etc.

Por exemplo:



o retângulo que forma o braço é a base menor de um trapézio retângulo (lado AD), que é igual a: lado AD = R*4;

a distância entre o braço e a esfera da cintura pode ser utilizada a fórmula da distância entre dois pontos:
DC = (AB)² - (BC - AD)³

a distância entre os braços e a cintura e a cintura e a cabeça é o valor do r (raio do olho).

a distância entre as duas extremidades dos olhos define o meio do desenho e o outro lado são basicamente as mesmas formas, só irá mudar o valor das coordenadas.
As coordenadas (x e y) de cada ponto vão ajudar a você estabelecer essas distâncias entre pontos das figuras... após a figura ser divida em módulos.




Para essa divisão de módulos, eu escolhi criar um tela 800x800 e dividir ela igualmente em 15 módulos de valor 50. Após isso eu escolhi meu ponto inicial... e determinei os módulos de cada parte da imagem.. isso vai me ajudar no desenvolvimento do aplicativo que é de recriar o logotipo da Android sem utilizar números específicos, assim se a pessoa quiser criar um logotipo em qualquer coordenada, ou de qualquer tamanho, será possível.

O código:

para a criação do código eu usei apenas as funçoes rect(), arc(), line() e ellipse() e assim criei todas as partes que juntas, formariam o desenho do robô.

int mod = 50;

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

void draw(){
  background(0);
  desenhaCorpo(250,307,mod);
  antenas(250,307, mod);
}


void desenhaCorpo (float x, float y, float modulo){

//cabeça
noStroke();
fill(151,199,24);
arc(x + 3.07*modulo, y - 0.2*modulo, 6.14*modulo, 6.14*modulo, PI, 2*PI, OPEN);

//olhos

fill(255);

ellipse(x + 1.66*modulo, y - 1.62*modulo, 0.52*modulo, 0.52*modulo);
ellipse(x + 4.48*modulo, y - 1.62*modulo, 0.52*modulo, 0.52*modulo);

//pontas das antenas
fill(151,199,24);
ellipse(x + 1.12*modulo, y - 3.64*modulo, 0.16*modulo, 0.16*modulo);
ellipse(x + 5.02*modulo, y - 3.64*modulo, 0.16*modulo, 0.16*modulo);
//braço esquerdo
fill(151,199,24);
ellipse(x + 7.1*modulo, y + 0.58*modulo, 1.4*modulo, 1.4*modulo);
ellipse(x + 7.1*modulo, y + 3.42*modulo, 1.4*modulo, 1.4*modulo);
rect(x + 6.4*modulo, y + 0.58*modulo, 1.4*modulo, 2.8*modulo);
//cintura
rect(x, y, 6.14*modulo, 4.52*modulo);
ellipse(x + 0.7*modulo, y + 4.5*modulo,1.4*modulo, 1.4*modulo);
ellipse(x + 5.44*modulo, y + 4.5*modulo, 1.4*modulo, 1.4*modulo);
rect(x + 0.7*modulo, y + 4.5*modulo, 4.74*modulo, 0.7*modulo);

//braço direito
ellipse(x - 0.96*modulo, y + 0.58*modulo, 1.4*modulo, 1.4*modulo);
ellipse(x - 0.96*modulo, y + 3.42*modulo, 1.4*modulo, 1.4*modulo);
rect(x - 1.66*modulo, y + 0.58*modulo, 1.4*modulo,2.8*modulo);
//pernas
rect(x + 1.22*modulo, y + 4.5*modulo, 1.4*modulo, 2.2*modulo);
rect(x + 3.52*modulo, y + 4.5*modulo, 1.4*modulo, 2.2*modulo);
ellipse( x + 1.92*modulo, y + 6.7*modulo, 1.4*modulo, 1.4*modulo);
ellipse( x + 4.22*modulo, y + 6.7*modulo, 1.4*modulo, 1.4*modulo);
}

void antenas(float x, float y, float modulo){
strokeWeight(round(0.16*modulo));
stroke(151,199,24);
line(x + 1.12*modulo, y - 3.64*modulo, x + 1.66*modulo, y - 2.74*modulo);
line(x + 5.02*modulo, y - 3.64*modulo, x + 4.48*modulo, y - 2.74*modulo);

}



Resultado Final:



Nenhum comentário:

Postar um comentário