Projeto - Teste de Rorschach em Java
Autor: Fernando Anselmo | Publicado: 2016-05-14T15:04:00-03:00

O Teste de Rorschach ficou famoso em duas ocasiões, primeira quando estreou o filme "Watchmen" e todos ficaram curiosos com o estranho personagem, a segunda quando foi aplicado a Suzane von Richthofen&nbsp;como forma de tentar entender sua personalidade.




É um teste simples e ao mesmo tempo muito complexo, consiste na apresentação de um cartão "manchado com tinta" (por esse motivo também é chamado de "Teste do Borrão de Tinta") e perguntar a pessoa o que ela está vendo. A partir das respostas (essa é a parte complexa) traçar a personalidade do entrevistado.

O que mais me diverte nesse teste, como programador, é ver que a imagem formada segue um padrão, a tinta é colocada em um lado do cartão e esse é dobrado ao ser aberto é que se forma o desenho. É como se metade do cartão fosse visto através de um espelho.

Então me perguntei se seria possível criar um programa para reproduzir os desenhos em Java? Um programa com o pacote Swing (parte gráfica da linguagem) usa o método paint(Graphics) para criar imagens (criei um RefCard que pode ser baixado aqui sobre esse assunto). Então é possível utilizá-lo para recriar o padrão desse desenho.

Primeiro detalhe é que a imagem deve possuir um tamanho fixo, pensando em uma imagem de 640 px por 335 px, temos que lembrar de alguns detalhes importantes:

Pensemos que o papel será dobrado para obter a imagem completa, sendo assim devemos pintar apenas metade da largura da área total (320 px) e reproduzir o mesmo desenho na outra metade em forma espelhada.
Deve ocorrer uma maior concentração de pontos da imagem do centro para as bordas.
Fica mais destacado o desenho se as cores são variações de preto e vermelho.

A lógica é simples, criar imagens ovais (bolinhas) com altura entre 5 px e 295&nbsp;px&nbsp;(para não chegarmos ao topo), largura entre 1&nbsp;px&nbsp;e 30&nbsp;px&nbsp;e altura entre 1&nbsp;px&nbsp;e 20&nbsp;px. Para a posição a esquerda deve existir uma maior concentração de pontos no meio da figura, para isso vamos trabalhar com 5 áreas distintas, a primeira permitir que 150&nbsp;bolinhas&nbsp;sejam geradas na área total, diminuir 50&nbsp;px&nbsp;de margem esquerda e desenhar mais 150&nbsp;bolinhas, e assim vai até chegar na última área de 50&nbsp;px.

Para cada conjunto de 150 bolinha&nbsp;geradas serão 145 no padrão preto (isso é, com RGB variando entre [0,0,0] preto escuro e [109,109,109] cinza escuro) e outras 5 no padrão vermelho (isso é, com RGB variando entre [255,0,0] preto escuro e [255,109,109] cinza escuro).

O pulo do gato para formar a figura completa e duplicar cada uma das&nbsp;bolinhas geradas no seu correspondente a esquerda imitando um espelho. Imaginemos que uma bolinha foi gerada na posição a esquerda de 10 px&nbsp;(está bem perto do canto esquerdo)&nbsp;com largura de 10 px, ela deve parar no canto direito da imagem. Para isso vamos usar uma fórmula simples, [Tamanho Total] menos a [Posição a Esquerda] menos a [Largura].

Veja 4 imagens geradas pelo programa:














Adicionei dois detalhes ao programa que é um botão para mudar a imagem e outro para permitir salvá-la em arquivo formato PNG. Use esse programa para gerar suas imagens, mudar os padrões de geração aumentando ou diminuindo os valores e principalmente para melhorar seus conhecimentos na prática da linguagem Java.

Baixe o programa completo em: Rorschach

Obrigado e até a próxima
Fernando Anselmo