Klasse Kreis und Methode lage

Status
Nicht offen für weitere Antworten.

ecm

Mitglied
Hallo miteinander,

Ich habe gerade durch Zufall dieses Forum entdeckt und hoffe ihr könnt mir bei einem Problem helfen.

Es geht um folgendes:

Ein Kreis ist gegeben durch den Radius und seinen Mittelpunkt (M=(0,0)). Über Eingabedialog ist der Wert für den Radius und die Koordinaten für einen Punkt(X,Y) einzugeben. In einer Methode lage soll überprüft werden ob der Punkt auf, innerhalb oder außerhalb des Kreises liegt.

Klingt für die meisten von euch wahrscheinlich ziemlich banal aber ich komm im Moment einfach nicht weiter.

Das habe ich bis jetzt zusammengebastelt:
Java:
//Beispiel 1; Übungszettel 102 SS09

import javax.swing.*;

public class Kreis{

	public static void main(String[]args){

		
		String radius, px, py;
		double r, p1, p2;

		radius=JOptionPane.showInputDialog(null,"Radiuseingabe:");
		px=JOptionPane.showInputDialog(null,"X-Koordinate:");
		py=JOptionPane.showInputDialog(null,"Y-Koordinate:");

		r=Double.parseDouble(radius);
		p1=Double.parseDouble(px);
		p2=Double.parseDouble(py);

		lage(r,p1,p2);
	}


	public static void lage(double radius, double x, double y){

		if(x==radius && y==radius){
	  	  System.out.print("Der Punkt liegt am Kreis");
    	}
		else{
	  	  if(x<radius && y<radius){
	        System.out.print("Der Punkt liegt innerhalb des Kreises");
	      }
	      else{
	        if(x>radius && y>radius){
		      System.out.print("Der Punkt liegt außerhalb des Kreises");
		    }
	      }
	    }

	}
}
Also ich weiß das die Methode so wie sie hier steht nicht das macht, was von ihr verlangt wird. Mein größtes Problem ist eigentlich wie ich den Kreis erzeugen kann, sodass der Computer die ganzen Koordinaten des Kreises kennt. Oder muss er das gar nicht wissen und ich bin auf der falschen Fährte?

Ich hoffe ihr könnt mir ein paar gute Tipps geben!

Danke im Vorraus,

lg ecm
 
Zuletzt bearbeitet von einem Moderator:

E.G.O.

Mitglied
hab zwar nur oberflächlich drüber geschaut, aber sieht doch gut aus.
nur momentan sind dein if-Abfragen noch nich ganz richtig, du testest zur Zeit auf ein Quadrat mit dem Koordinatenursprung als Mittelpunkt.
Du musst durch geeignete Formeln rausfinden wie weit ein Punkt vom Mittelpunkt(hier: 0,0) entfernt ist und dann statt x und y mit r zu vergleichen natürlich den Abstand nehmen. Formel dafür wirst du doch alleine finden, oder?
 

ecm

Mitglied
Hey!

danke für die schnelle Antwort!

ich werds mit der Formel (abstand=Wurzel((x1-x2)²+(y1-y2)²)) versuchen.

denke das es dann laufen wird, danke für die Richtungsweisung!

lg ecm
 

ecm

Mitglied
Hallo,

Hab die Methode jetzt so verändert:

Java:
	public static void lage(double radius, double x, double y){

		double l1, l2;

		l1=radius;
		l2=Math.sqrt(((0-x)*(0-x))+((0-y)*(0-y)));

		if(l2<l1){
		  System.out.println("Der Punkt liegt innerhalb des Kreises");
		}
		else{
			if(l2==l1){
			  System.out.println("Der Punkt liegt auf dem Kreis");
			}
			else{
				if(l2>l1){
				  System.out.println("Der Punkt liegt ausserhalb des Kreises");
				}
			}
		}

und es funktioniert wunderbar! Dankeschön!

lg ecm
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben