Java2D rotação de imagens

Ola amigos!

Já li e continuo lendo tutorias sobre Java2D e afins, acompanho o site pontoV do Viny(muito bom por sinal)

Então comecei a desenvolver este software http://www.megaupload.com/?d=8T0SA15A(neste link vc baixa o projeto netbeans que estou trabalhando).
Comecei a desenvolver este software apenas para aprender sobre java 2d, no momento não tenho a pretensão de desenvolver uma super ferramente para o desenvolvimento de animação em java 2d, é mais uma experiência de estudos. Bom mas vamos ao problema. Estou com dificuldades para trabalhar com a rotação das imagens.

Quem puder baixar o código do projeto e abrir no netbeans(uso o netbeans 6.9), ao executar o aplicativo, adicionar uma imagem, selecionar a ferramenta de rotação que estou tentando criar vai poder verificar a minha dificuldade.
Se alguém tiver alguma dica de como melhorar esta minha ferramenta(por sinal não esta legal) ficarei muito agradecido.

Obs.: Só pra deixar claro, este projeto é apenas uma forma de aprender programar programando, no momento não tenho a pretensão de que seja um projeto sério.

Dica. Zipe apenas a pasta source, e anexe aqui no GUJ mesmo, usando o botão de attachments. Já vou ver seu código.

Não consegui inserir uma imagem. Como faz?

Outra dica, evite usar acentuação em variáveis do seu código.

Aliás, também seria bom se:

  1. Você dissesse claramente qual é o problema que você está tendo (preferencialmente com um screenshot) - ou dissesse os passos EXATOS para simula-lo;
  2. Dissesse em que trecho do código você faz a pintura;
  3. Dissesse como funciona o mecanismo de pintura do seu programa.

Valeu Vini, pois é tem coisas bizarras no meu codigo sim. Existem coisas que escrevi o mês passado que podeira escrever melhor hoje e certamente escreveria melhor daqui a um mês.
Segue uma descrição melhor da situação:

1 - Para simular o problema voçê insere uma imagem, seleciona esta imagem, e seleciona a ferramenta de rotacionar. O problema é que depois que eu rotaciono a imagem fica dificil de trabalhar com ela, principalmente na hora de mover. Tambem estou com dificuldade de rotacionar a imagem apartir de um centro de rotação pre especificado.

Uma parte da dinâmica de rotacionamento de imagens ocorre na classe daydream.controles.mouse.MouseDragged -> método processar(MouseEvent)

2 - Escrevi a classe daydream.componentes.palco.PintorPalco, as pinturaras ocorrem no metodo: public void pintar(Graphics2D g2, EventoPalco acao){… outros métodos de pintura}

Para inserir uma imagem pode-se usar o meu inseir->imagem, ou o botão de inserir imagem na barra de ferramentas ao lado do palco(botão com um circulo acima de um triângulo);
Ao clicar no botão uma nova janela se abrira onde vc podera clicar no botão adicionar, que abrirá o JFileChooser.
Escolha a(s) imagens. Um nome sera criado para cada imagem(é possivel renomea-las), estas serão inseridas no componente JList abaixo do botão adicionar.
Depois selecione a imagem que vc vai inserir no palco e clique no botão inserir imagem, em seguida clique na area do palco onde vc deseja inserir a imagem.

Para rotacionar a imagem é necessário seleciona-la.

zip do fonte

Organize seus métodos de forma que:

  1. Todos os objetos são desenhados no centro do sistema de coordenadas. Esse será o sistema de coordenadas próprio do objeto;
  2. Rotações irão ocorrer nesse centro;
  3. Translações serão feitas na sequência (cuidado pois a ordem da multiplicação das matrizes afeta a pintura);

O problema é que quando uma imagem gira, seu bounding box deixa de ser alinhado aos eixos. O java não tem métodos para tratar colisões ou intersessões com retângulos inclinados. E aí deve estar sua dificuldade. Isso teria que ser implementado no braço.

Cara é isso mesmo.
Eu achei que eu tinha criado esta dificuldade dada a minha falta de experiência, mas pelo que disse o trabalho é esse mesmo. Valeu, vou continuar pesquisando o assunto e trabalhando no código. Valeu Vini.

Esse problema você não teria se estivesse implementando em C# com XNA. Ou futuramente, no Alegria2D. :slight_smile:

C# XNA esta fora de cogitação(nada contra).

Ja estou olhando este projeto Alegria2D parece interessante.

Nada contra pq?

Ainda está nas primeiras etapas do desenvolvimento. Não temos nada pronto ainda. Por enquanto, é quase tão difícil de usar quanto LWJGL direto.

[quote] mdea wrote:C# XNA esta fora de cogitação(nada contra).

Nada contra pq?[/quote]

É que geralmente quando se diz que não gosta de C#(no meu caso é falta de interesse mesmo), abre-se a possibilidade da velha discussão inútil “Java Vs C#”. Eu particularmente nunca tive interesse na plataforma .NET assim como não duvido de sua qualidade. Mas enfim, vou ficar de olho neste projeto Alegria2D.

http://code.google.com/p/alegria/wiki/AlegriaWelcome