Como temos algumas variantes do simbolo deixo esta como referência para o trabalho:
Vamos começar com uma análise matemática do simbolo.
Podemos desenhá-lo de várias formas, a que eu escolhi consiste em iniciar o desenho com 3 elipses horizontais sobrepostas.
A maior em preto, a intermediária em amarelo e a menor em preto novamente, essa com o raio 200 para facilitar os próximos cálculos.
Feito isso é hora de começar a desenhar o morcego, utilizando apenas elipses amarelas para recortar a elipse preta menor do desenho inicial.
Para a parte de cima temos uma esfera de raio 45 que é duplicada para o outro lado (notem que o desenho é espelhado, o que facilita o posicionamento dos elementos nessa etapa).
Na parte inferior temos duas elipses sobrepostas, a primeira levemente inclinada e a segunda na vertical. Para simplificar a implementação deixei a segunda elipse um pouco menor para que sua forma não ultrapassasse o limite inferior do desenho.
Da mesma forma é só espelhar para o outro lado e obter a forma desejada.
Já está parecido? Quase!
Agora é a hora de dar o acabamento, precisamos de alguns quadriláteros para nos ajudar a desenhar as pontas de maneira correta, vamos lá?
Que tal o meu Batman? Ficou parecido, vai!
Olha só um comparativo do meu resultado final com o simbolo original:
Segue o código completo:
//vamos desenhar a logo do Batman
void setup(){
size(600,600);
background(255);
noStroke();
fill(0);
//comaçando com as 3 primeiras elipses como base
ellipse(300,300,238,145);
fill(255,241,0);
ellipse(300,300,224,136);
fill(0);
ellipse(300,300,200,120);
fill(255,241,0);
//Agora vamos iniciar os recortes para dar forma ao desenho
ellipse(268,261,45,47);
ellipse(335,261,45,47);
//acabamento da "cabeça" do morcego com quadriláteros
rect(312,240,20,20);
rect(270,240,20,20);
rect(296,240,11,12);
//desenhando os "chifrinhos" com triangulos
triangle(291,240,296,253,296,240);
triangle(305,253.4,312,240,307,240);
fill(0);
/*agora é hora de trabalhar a parte inferior do desenho,
começando com 4 elipses iguais */
ellipse(300,258,20,20);
fill(255,241,0);
ellipse(250,340,35,40);
ellipse(275,345,30,40);
ellipse(325,345,30,40);
ellipse(350,340,35,40);
//Agora é só afiar as pontas com a ajuda dos nossos quadrados e triangulos...
rect (280, 345, 10,20);
rect (310, 345, 10,20);
quad(300,365,290,360,290,350,288,340);
quad(340,365,300,360,340,350,300,340);
//e pronto, temos o nosso Batsinal no Processing!
}