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.
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.
Todos os objetos são desenhados no centro do sistema de coordenadas. Esse será o sistema de coordenadas próprio do objeto;
Rotações irão ocorrer nesse centro;
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.
[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.