Olá a todos, estou fazendo um jogo de cartas em java usando a api Java2D.
Estou querendo fazer uma pequena animação de uma carta, parecido com uma rotação 3D(abaixo tem a imagem de duas cartas q demonstram tal efeito).
No projeto, carta é uma imagem - classe BufferedImage.
Pesquisei em alguns lugares… um modo que poderia ser feito é uma animação baseada em imagens… um modo que eu quero evitar.
Pretendo animar por meio da linguagem.
Talvez utilizando a API JAI(Java Advanced Imaging) poderia conseguir, formatando a imagem original, até chegar no efeito desejado.
Mas daria muito trabalho e não sei se daria certo.
Enfim,
Aguém poderia opinar/indicar um caminho para conseguir animar. Alguém ja fez esse tipo de animação?
Agradeço, desde já, a ajuda!
Imagem Original
http://img98.imageshack.us/i/versoz.jpg/
Imagem “animada”
http://img197.imageshack.us/i/versodacarta2.jpg/
Não conheço nenhuma API de java 2D que faça esse tipo de rotação.
Até porque, uma rotação em torno do eixo y exige também o cálculo de perspectiva, como ocorre em sua carta.
A maior parte das APIs 3D consegue fazer isso, uma vez que conhece o formato exato do frustrum, isto é, da pirâmide seccionada que define o plano. Essa pirâmide geralmente é definida pelo ângulo de abertura da visão, aspect ratio e a distância em relação ao observador.

Talvez exista alguma API 2D que faça esse tipo de rotação, jogando valores padrão para essas informações, mas desconheço.
Agradeço o esclarecimento!
Então, como o projeto todo envolve apenas a api Java2D, foquei o estudo nela.
Caso usasse a api Java3D para esse recurso, tem alguma classe/método que faça isso?
Se pudesse me indicar um caminho, ficarei grato.
Tem sim, nas APIs 3D como o Java3D, o JOGL e a JMonkeyEngine, o método rotate geralmente permite que você especifique em que eixo deseja rodar. Pode ser tanto um dos eixos básicos, quando um eixo arbitrário, definido por um vetor.
Ok, obrigado. Vou pesquisar depois comento o resultado.
