Nacheinander Zeichnen

Hero

Mitglied
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:

Java:
 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.
 
Zuletzt bearbeitet:

Marco13

Top Contributor
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

Mitglied
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?
 
P

pappawinni

Gast
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.
 

Neue Themen


Oben