Klasse Dreieck und Punkt realisieren

Araschi

Mitglied
Hallo, ich möchte wirklich nicht stören, doch habe ich ein schwerwiegendes Verständnis Problem bei einer Aufgabe die ich gerade Programmiere. Folgende Aufgabenstellung ist gegeben :

Realisieren Sie die Klassen Punkt und Dreieck im Package de.pdbm.programmierung.aufgabe2. Die Klasse
Punkt de niert die folgenden Methoden/Konstruktoren.
public Punkt ( double x, double y)
public double entfernung ( Punkt p)
public boolean gleich ( Punkt p, double epsilon )
public Punkt verschiebe ( double dx , double dy)
public double getX ()
public double getY ()
Punkte sollen unveranderlich sein und besitzten daher keine Setter. Auch die Methode verschiebe verschiebt
nicht den aktuellen Punkt, sondern liefert einen neuen, verschobenen Punkt zuruck. Unveranderliche Klassen
nennt man im Englischen immutable. Die Klasse String ist hierfur ein prominentes Beispiel. Als Entfernung
wird der euklidische Abstand berechnet. Die Gleichheit zweier Punkte basiert auch auf diesem Abstand.
Die Klasse Dreieck ist ebenfalls unveranderlich. Implementieren Sie die folgenden Methoden/Konstruktoren.
public Dreieck ( Punkt p1 , Punkt p2 , Punkt p3)
public double umfang ()
public double flaeche ()
public Dreieck verschiebe ( double dx , double dy)
public Punkt getP1 ()
public Punkt getP2 ()
public Punkt getP3 ()
Bei verschiedenen Berechnungen konnten Ihnen die Methoden Math.hypot() und Math.sqrt() bei der
Arbeit helfen. Ein guter Tipp fur die Flachenbereichnung eines Dreiecks ist der Satz des Heron.


Hier ist meine Klasse Punkt:

Java:
package de.pdbm.programmierung.aufgabe2;

public class Punkt {

	public double x=0.0;
	public double y=0.0;
	     
	
	public Punkt ( double x, double y){
		// Konstruktor
		
		this.x = x;
		this.y = y;

	}
	
	public double entfernung(Punkt p){
		
		return Math.hypot(x - p.getX(),y-p.getY());
	}
	public boolean gleich(Punkt p, double epsilon){
		//entfernung vergleichen
		
		return false;		
	}
	public Punkt verschiebe(double dx , double dy){
		
		Punkt p = new Punkt(dx+x,dy+y);
		
		return p;
		
		
	}
	
	
	// GETTER
	public double getX(){
		return x;
	}
	
	public double getY(){
		return y;
	}
	
	
public static void main(String[] args) {
		
		Punkt p = new Punkt(2.3,5.5);
		
		Punkt p3 = p.verschiebe(2.0,2.0);
		System.out.println(p3.getX() + " " + p3.getY());
		
	}

}

Und hier die Klasse Dreieck:

Java:
package de.pdbm.programmierung.aufgabe2;

public class Dreieck {
	
	public Punkt p1;
	public Punkt p2;
	public Punkt p3;
	
	public Dreieck (Punkt p1 , Punkt p2 , Punkt p3){
		
		this.p1 = p1;
		this.p2 = p2;
		this.p3 = p3;
	}
	
	public double umfang (){
		double u = 0.0;
		Dreieck dre = new Dreieck(p1, p2, p3);
		u = (p1.add(p2);
		
		return u;
	}
	public double add(){
		
		
		
		return 0;
		
		
	}
	
	
	
	public double flaeche (){
		return 0;
	}
	public Dreieck verschiebe (double dx , double dy){
		return null;
		//Dreieck p = new Dreieck(dx,dy);
		//Dreieck p = new dreieck;
		//return;
	}

	// GETTER
	public Punkt getP1 (){
		return p1;
	}
	public Punkt getP2 (){
		return p2;
	}
	public Punkt getP3 (){
		return p3;
	}
	
	


}

Mein Problem ist wie ich die Objekte sprich p1 ... p3 addieren kann um zB den Umfang zu berechnen. F[r eine kleine Hilfestellung waere ich sehr verbunden.

mfg Araschi
 
S

SlaterB

Gast
p1.entfernung(p2) liefert doch den Abstand zwischen 2 Punkten,
ist der Umfang nicht genau die Summe der Abstände zwischen allen Punkten?
 

Araschi

Mitglied
Ja der Umfang ergibt sich aus den drei Punkten, also die Aussenlinien ergeben den Umfang, das problem ist wie ich p1...p3 zusammen addieren kann. Da es ja Punkt Objekte sind
 

Araschi

Mitglied
DAs Problem ist das ich dachte beim Umfang einfach nur u gleich p1+p2+p3 aber da gibt er mir folgende Fehlermeldung aus > The operator + is undefined for the argument type(s) de.pdbm.programmierung.aufgabe2.Punkt, de.pdbm.programmierung.aufgabe2.Punkt
 

Luke_

Mitglied
Java:
public Punkt add(Punkt p)
{
  return new Punkt(this.x + p.getX(), this.y + p.getY())
}

so könnte deine add funktion aussehen.... aber bekommst du damit den umfang??
ich würde den umfang auch mithilfe der entfernung berechnen.
 
S

SlaterB

Gast
wie soll p1+p2+p3 irgendetwas mit der Lösung zu tun haben?
ohne Denken funktioniert Programmieren nicht
Java:
double abstand1 = p1.entfernung(p2);
hier hast du eine double-Zahl, die man addieren kann,
mehrere solcher Zahlen brauchst du um sie dann zusammenzuzählen

irgendwas davon verstanden?
 

Neue Themen


Oben