# Nacheinander Zeichnen



## Hero (11. Mai 2012)

Hallo,
Unsere Aufgabe ist es den kleinsten Umschließenden Kreis zu Zeichnen. Der Kreis soll eine Punktmenge umschließen aber ich krieg das nicht hin. 

Der Code um den Kreis zu berechnen haben vorher bekommen aber (nicht nur) bei mir wird zwar ein Kreis gezeichnet aber es liegen nicht alle Punkte drinne.

Mein Code ist:


```
for(int i = 0; i < Testklasse.pkt.length; i++){
	       g.fillOval((int)Testklasse.pkt[i].x, (int)Testklasse.pkt[i].y, 3, 3);
	      }
	      
	      g.drawOval((int)GeoMath.getMinCircumcircle(Testklasse.pkt).origin.x, (int)GeoMath.getMinCircumcircle(Testklasse.pkt).origin.y, (int)(GeoMath.getMinCircumcircle(Testklasse.pkt).r*2), (int)(GeoMath.getMinCircumcircle(Testklasse.pkt).r*2));

/*Testklasse.pkt ist der Array mit der Punktmenge. Bei jedem Element wird (x | y) per Zufall bestimmt. getMinCircumcircle-Methode gibt mir einen die Punkte (x|y),Radius und Mittelpunkt zurück*/
```

Natürlich kann es sein, dass der Code, der uns schon vorgegeben ist (getMinCircumcircle-Methode ) falsch ist aber man sucht ja bekanntlich die Fehler immer erst bei sich.

Ich glaube, dass er den Kreis und die Punkte Paralell Zeichnet und nicht nacheinander, deswegen wollte ich Fragen wie man Java sagen kann, dass er die Punkte zuerst Zeichnen soll und danach den Kreis.


----------



## Marco13 (11. Mai 2012)

Was ist das x und y? Beachte, dass das bei drawOval NICHT den Mittelpunkt beschreibt! Um einen Kreis mit Radius r bei x,y zu zeichnen, braucht man
drawOval(x-r,y-r,r+r,r+r);


----------



## Hero (11. Mai 2012)

x und y sind die Koordinaten-Punkte vom Mittelpunkt.

Versteh ich das Richtig? Mit den x und y Koordinaten des Mittelpunkts darf ich die Zeichnung nicht machen, damit alle Punktmengen im Kreis sind? 

Also dürfte ich, dass ==> drawOval(x-r,y-r,r+r,r+r)<== nicht machen weil x,y Punkte vom Mittelpunkt sind, oder?


----------



## pappawinni (11. Mai 2012)

DrawOval
 public DrawOval(int x,
                int y,
                int width,
                int height) 
Returns DrawOval which fits into specified rectangle. 

Parameters:

x - left edge of the rectangle
y - top edge of the rectange
width - width of the rectangle
height - height of the rectange

Demnach dürften für die Methode DrawOval
die Linke Obere Ecke (x,y), sowie Breite (width) und Höhe (height) des den Kreis umgebenden Quadrates als Parameter notwendig sein.


----------

