Galera do GUJ, beleza?
Eu estou fazendo um trabalho para a faculdade em que preciso implementar algumas funções em um programa estilo Paint. Atualmente na função de círculo, eu estou tendo problema para pegar o raio correto.
Ele funciona da seguinte maneira: Circulo(coordenada_x, coordenada_y, raio), onde o usuario irá clicar em algum ponto inicial da tela e em outro para definir o limite do círculo.
Como eu pego a distância entre o ponto inicial (centro do circulo) até aonde o usuario clicou (limite do circulo)? Estou usando o método p1.getX() e p1.getY() para pegar as coordenadas do ponto inicial.
segue alguns trechos (que julgo eu) serem importantes:
else
if(esperaInicioCirculo)
{
p1 = new Ponto(e.getX(), e.getY(), corAtual);
esperaInicioCirculo = false;
esperaFimCirculo = true;
statusBar1.setText("Mensagem: clique o limite do círculo");
}
else
if(esperaFimCirculo)
{
esperaInicioCirculo = false;
esperaFimCirculo = false;
figuras.add (new Circulo(p1.getX(), p1.getY(), p1.getX()-p1.getY(), corAtual));
figuras.get(figuras.size()-1).torneSeVisivel(pnlDesenho.getGraphics());
statusBar1.setText("Mensagem:");
}
public class Circulo extends Figura
{
protected Ponto centro;
protected int raio;
public Circulo (int x, int y, int r)
{
super ();
this.centro = new Ponto (x,y);
this.raio = r;
}
public Circulo (int x, int y, int r, Color cor)
{
super (cor);
this.centro = new Ponto (x,y);
this.raio = r;
}
public void setRaio (int r)
{
this.raio = r;
}
public Ponto getCentro ()
{
return this.centro;
}
public int getRaio ()
{
return this.raio;
}
public void torneSeVisivel (Graphics g)
{
g.setColor (this.cor);
g.drawOval (this.centro.getX()-raio, this.centro.getY()-raio, 2*raio, 2*raio);
}
Alguma ajuda?