Publicado em: 09/04/2009 23:18:44
hunternh:1 - eu tenho como pegar o foco do componente que está selecionado?
Componente? No seu caso não vão ser polígonos?
No exemplo que eu citei no último post, onde eu arrasto componentes, era só para ter uma idéia de como usar listeners para implementar o arraste. Como polígonos não são componentes, você vai ter que fazer um pouco diferente, ouvindo os eventos do painel principal e calculando qual o polígono clicado, ao invés de simplesmente ouvir os eventos dos componentes diretamente.
hunternh:2 - o componente recebe qualquer objeto?
Não, apenas componentes Swing (Botões, labels, etc.). Você pode até querer usar componentes para representar os polígonos, mas daí há o problema de que os componentes sempre tem a forma retangular, então seria complicado fazer com que o componente certo gerasse os eventos quando polígonos forem sobrepostos.
hunternh:3 - ao usar uma função scale(2,2) por exemplo, como é feito o calculo com os pontos do poligono, seria o valor do ponto vezes 2?
Sim, todas as coordenadas são multiplicadas por 2.
Dá pra fazer muita coisa com transformações, mas é preciso saber um pouco de álgebra linear para compor as funções, tipo '-translate,scale,+translate' para rotacionar um objeto sobre seu centro ao invés do centro do plano cartesiano.
Publicado em: 09/04/2009 23:18:44
ronaldtm:Componente? No seu caso não vão ser polígonos?
No exemplo que eu citei no último post, onde eu arrasto componentes, era só para ter uma idéia de como usar listeners para implementar o arraste. Como polígonos não são componentes, você vai ter que fazer um pouco diferente, ouvindo os eventos do painel principal e calculando qual o polígono clicado, ao invés de simplesmente ouvir os eventos dos componentes diretamente.
Realmente é com polígonos que estou trabalhando, só que já tentei usar os eventos do próprio painel e o contexto gráfico do mesmo para desenhar, mas eu não consegui resolver. O que acontecia quando eu fazia um translate com o affinetransform do contexto gráfico do painel era o seguinte: eu clicava no polígono a primeira vez dentro dele e usava o método contains para verificar se eu estava clicando dentro dele pra fazer o movimento, até ai tudo bem funcionava, mas quando eu tentava clicar uma segunda vez e arrastar não dava mais certo e se eu clicava onde o poligo estava no início funcionava, só que eu estava clicando fora do polígono. Pelo que eu li na documentação quando eu faço um translate(50,50) por exemplo esse seria o novo ponto 0.Ai que eu não entedi a situação, se o polígono estivesse setado para a posição (10,10) essa posição não seria a partir do novo ponto 0? Por isso eu já não sei mais o que fazer eu estou procurando uma solução para o meu problema já faz um bom tempo, mas eu não consigo resolver.
ronaldtm:Não, apenas componentes Swing (Botões, labels, etc.). Você pode até querer usar componentes para representar os polígonos, mas daí há o problema de que os componentes sempre tem a forma retangular, então seria complicado fazer com que o componente certo gerasse os eventos quando polígonos forem sobrepostos.
Uma coisa que eu tentei fazer usando o teu exemplo foi desenhar dentro de um painel usando o seu próprio contexto gráfico, e colocá-lo dentro do componente, mas não aparece nada do polígono somente o contorno do próprio componente. Daí o que eu fiz foi desenhar em buffer e transformar o desenho em imagem depois colocá-lo dentro do componente, só que ai já vem outros problemas e já complica um monte.
Será que tu terias um exemplo de como fazer com painéis como eu mecionei acima ou sei lá de outra forma, porque eu não sei mais o que fazer.
ronaldtm:Sim, todas as coordenadas são multiplicadas por 2.
Dá pra fazer muita coisa com transformações, mas é preciso saber um pouco de álgebra linear para compor as funções, tipo '-translate,scale,+translate' para rotacionar um objeto sobre seu centro ao invés do centro do plano cartesiano.
Em relação a rotação eu já fiz testes com o affinetransform e ele tem um método que faz a rotação em relação ao centro do polígono.
Tudo o que tu tiveres de exemplo que puder me ajudar eu agradeço imensamente. Não quero ser chato, mas é que não sei a quem mais apelar.
Publicado em: 09/04/2009 23:18:44
Como faço para que o meu plano tenha os limites x(-80,-30) e y(-40,20)?
Obrigada
Cintia
Publicado em: 09/04/2009 23:18:44
Ae valeu pelo código do plano cartesiano vou usar no meu TCC para amostrar gráficos e rotações
Publicado em: 09/04/2009 23:18:44
logan-x:Ae valeu pelo código do plano cartesiano vou usar no meu TCC para amostrar gráficos e rotações
Aê, se puder, põe a referência daqui do site na bibliografia (e quem sabe uma nota especial ao Javafree nos agradecimentos... hehehe)
_________________
In fact, people who study design methods without also practicing design are almost always frustrated designers who have no sap in them, who have lost, or never had, the urge to shape things. Such a person will never be able to say anything sensible about "how" to shape things either. (Christopher Alexander)
desenhando num arquivo topic-10899-desenhando-num-arquivo.html Inserindo um Plano cartesiano. topic-870154-Inserindo-um-Plano-cartesiano.html Repintando o Grafico topic-852096-Repintando-o-Grafico.html COMO CRIAR UM TRIANGULO ? topic-8065-COMO-CRIAR-UM-TRIANGULO.html Matriz em vetor???? topic-860062-Matriz-em-vetor.html applet - mapa mundi topic-10153-applet-mapa-mundi.html problemas com o método paint() topic-14038-problemas-com-o-metodo-paint.html Java 2D topic-858548-Java-2D.html Evento do mouse topic-10496-Evento-do-mouse.html
| Goto page 1 |