|
Hallo,
ich habe eine Universitäts-Aufgabe, bei der ich in JAVA eine Funktion entwickeln muss, die prüft, ob sich eine Koordinate innerhalb eines Kreises befindet.
Bzw. ich muss eine Kreisfläche Zeichnen, jedoch ohne fertige 2D-Object-Funktionen.
Ich habe den Radius, x,y und die Position des Kreises, wo er sich in einer Fläche befindet. Bzw. die lege ich selbst fest.
Aber ich weiß nicht, wie ich ermittele, ob sich nun eine x,y Koordinate innerhalb oder außerhalb des Kreises befindet. Mir fehlt der Ansatz, das zu errechnen.
Beispiel:
Würde man auf diese Weise nur ein Quadrat ausgeben wollen, wäre die Formel : int width = 800; int height = 600; int startPosX = width/2; int startPosY = height/2; int radius = 80; for (int x=0;x<=width;x++) { for (int y=0;y<=width;y++) { if (x>=startPosX-radius) && (x<=startPosX+radius) && (y>=startPosY-radius) && (y<=startPosY+radius) { return Color.blue; //Quadrat-Farbe }else{ return Color.black; //Hintergrundfarbe } } }
Zu diesem Code fehlt mir das passende Pendant zum Kreis :-)
Aber die reine Formel, mit der ich weiß, ob sich eine x,y Koordinate innerhalb des Kreises befindet, würde mir schon weiter helfen.
Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert): "Ich benötige bitte nur das Ergebnis und keinen längeren Lösungsweg." |
|
|
Es sei
liegt innerhalb
liegt innerhalb
liegt auf dem Kreisrand
liegt außerhalb
mfG
Atlantik
|
|
Hallo,
vielen Dank für die schnelle Antwort.
Ich habe das versucht zu übernehmen, mir fehlen aber noch die Parameter, bzw. was ist bei dir das erste X und Y?
Ist was die Größe des Gesamtbildes oder die Position des Kreises?
Ich habe 3 Konstanten
WIDTH, HEIGHT, Radius,
und in der Runtime die 2 Variablen: X, Y
Kannst du mir da nochmal weiterhelfen? :-)
|
|
Ich habe 3 Konstanten WIDTH, HEIGHT, Radius, und in der Runtime die 2 Variablen:
Punkt innerhalb Punkt am Umfang Punkt außerhalb
Wenns aber nur darum geht, in einer Pixelgrafik eine Kreisfläche einzutragen, würde ich mir an deiner Stelle mal den entsprechend modifizierten Bresenham-Algorithmus ansehen. Das Füllen sollte dann ja kein Problem mehr darstellen.
|
|
Vielen Dank, jetzt hab ich es :-)
|