# Punkte des Kreises ausgeben (Java2D)



## Gast (12. Jul 2004)

Hallo,

Ich hab folgendes Problem, ich will einen Kreis zeichnen und in diesem Kreis eine Linie von Mittelpunkt bis zum Ende des Kreises Zeichnen. Diese Linie soll sich dann bewegen können und zwar am Kreisrand entlang (ähnlich wie die Zeiger einer Uhr). 
Nun erstell ich mir meinen Kreis mit:


```
Ellipse2D elli = new Ellipse2D.Float();
elli.setFrame(0,0,width,heigh);
big.draw(elli);
```

Den Mittelpunkt des Kreises krieg ich mit "elli.getCenterX()"....

Und nun meine Frage, kann ich mir irgendwie alle Punkte des Kreis-Randes ausgeben lassen in nen Array oder so ? Hab da bisher leider keine Funktion zu gefungen...


----------



## Kerberus (12. Jul 2004)

Per Definition besteht ein Kreis aus unendlich vielen Punkten. Wird also schwer ein Array zu erstellen 

Schau dir mal diesen Link an:

http://www.galileocomputing.de/op...40006.htm#Rxxjavainsel_140006282NEckezeichnen

Da gibt es eine Methode wie man regelmässige N-Ecke zeichnen kann. Du kannst auch sehen, wie die Punkte berechnet werden.

Mathematisch gilt: Wenn die Anzahl der Ecken gegen Unendlich strebt, dann ist das N-Eck ein Kreis. Dies lässt sich so natürlich nicht realisieren. Aber du kannst zum Beispiel n = 1000 Wählen und es sieht auch aus wie ein Kreis. (Hängt auch vom Radius ab)

Dies ist die einzige Lösung die mir im Moment dazu einfällt.


----------



## Isaac (12. Jul 2004)

Sag doch mal was du machen willst. Es besteht doch garkein Grund sich alle Punkte des Kreises in einem Array zeichen zu lassen. Über den Mittelpunkt, Radius und die Winkelfunktionen kann man doch alle in beliebiger Genauigkeit berechnen.


----------



## Guest (12. Jul 2004)

Ich wollte eine Linie die vom Mittelpunkt ausgeht und bis zum kreisrand geht, in diesem kreis rotieren (wie ein zeiger in einer Uhr).
Deswegen dachte ich zeichne ich ne linie vom Mittelpunkt zum Kreisrand, dann ein Pixel weiter im Kreisrand usw.

Das mit dem Winkel hab ich nicht bedacht, werd ich mal ausprobieren, danke für den Tipp.


----------



## Gast (16. Dez 2006)

Mit der Methode _elli.contains(Point p)_ kannst Du herausfinden, ob ein Punkt p im Kreis liegt. Wenn du das für alle Punkte im Umrechteck durchführst und die ausschließt, die in einem um X/Y je 1 Pixel verschobenen, X/Y je 2 Pixel kleineren Kreis liegen, hast du alle Punkte auf der Kreislinie von _elli_.


----------

