Estou envolvido com o desenvolvimento de um aplicativo “científico”, a estilo de um editor de UML, e estou com uma dúvida “cruel”!!!
“Como faço para desenhar um ‘Losango2D’?”
Eu uso hoje, na maioria das figuras que eu desenho, o Rectangle2D… Consegui resolver todos os “problemas maiores” com este cara, e agora me resta desenhar um losango. A idéia seria “rotacionar” este Rectangle2D e tals, mas não tô conseguindo! Como que eu faço para rotacionar o Rectangle2D? Eu não entendi o JavaDoc do Rectangle2D que diz como fazer isso…
Cara, faz um tempinho que mexi com Java2D. Mas se não me engano você pode aplicar uma rotação na base (origem), desenhar um retângulo e depois “desrotacionar”.
viniciusmayer
public void draw(Graphics2D g2) {
super.draw(g2);
Rectangle2D rectangle = new Rectangle2D.Double(getBounds().getX(), getBounds().getY(), getBounds().getWidth(), getBounds().getHeight());
g2.draw(rectangle);
}
Bueno, este aí é o cara que eu uso para desenhar o meu Rectangle2D!!! Então, de acordo com a tua resposta, ciczan, eu deveria aplicar uma rotação no meu Graphics2D?!?! Eu não entendi muito bem o que você quiz dizer, você poderia me explicar, com base neste código que disponibilizei?
Fico desde já grato,
E. Vinicius D. Mayer
ciczan
Não to podendo testar agora, mas acho que é assim:
public void draw(Graphics2D g2) {
super.draw(g2);
g2.rotate(Math.PI/4);
Rectangle2D rectangle = new Rectangle2D.Double(getBounds().getX(), getBounds().getY(), getBounds().getWidth(), getBounds().getHeight());
g2.draw(rectangle);
g2.rotate(-1*Math.PI/4);
}