Circulo ponto a ponto

Bom pessoal, eu tenho uma tarefa para uma materia da faculdade, que é para testar os conceitos de aula, o primeiro, é que eu consiga desenhar um circulo ponto a ponto, usando o drawLine. usando tres metodos:

1º - y = ± raiz de r² - x²;

2º - x = cosTETA
y = senTETA
Nao lembro direito a formula, estou postando correndo antes que acabe minha aula…

3º - por um algoritmo.

o primeiro eu comecei a desenvolver assim:

[code]package cg;

import java.awt.;
import java.awt.event.
;
import javax.swing.JFrame;

public class Desenha extends JFrame {

Desenha(){
    super("Bolota");
    addWindowListener(
            new WindowAdapter(){
        public void
    WindowClosing(WindowEvent e){
            System.exit(0);
        }
    });

    setSize(300,300);
    add("Center", new MyCanvas());
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    show();
}

public static void main(String[] args){
    new Desenha();
}

}

class MyCanvas extends Canvas{
@Override
public void paint(Graphics g){
Dimension d = getSize();
g.setColor(Color.red);
int x1, x2, y1, y2, r;
x1 = 0;
r = 50;

    while(x1 != 50){
      y2 = (int)Math.sqrt(r * r - x1 * x1);
      g.drawLine(x1, y2, x1, y2);
      x1++;
    }
}

}[/code]

Mas soh consegui desenhas 1/4 do circulo, o que devo fazer para desenhar o resto ? como estou indo ?

[]'s

Você está indo bem no primeiro método.

Uma dica, para o segundo método.

Para um ângulo X qualquer, os valores x = cos(X) e y = sen(X) darão um ponto sobre a circunferência trigonométrica (de raio 1). Para que você altere o raio do círculo, basta multiplicar esse x e y obtidos pelo raio desejado.

Agora, é só fazer um for que varie de 0 até 360, e traçar retas nos pontos obtidos com os cálculos acima. Só lembre que as funções Math.sin e Math.cos usam como angulos valores em radianos (graças a Deus existe a função Math.toRadians).

Outra coisa. Canvas é um componente da AWT, não deveria ser misturado com componentes do Swing. No lugar, faça um extends em JComponent e sobrescreva o método paintComponent.