Hausaufgabe geometrische Figuren

jimmo

Mitglied
Hallo,
Ich bin neu hier und hab gerade erst mit Java angefangen, momentan schreibe ich ein Programm zur Berechnung geometrischer Figuren.
Jedoch sitze ich irgendwie auf der Leitung und komme nicht weiter..

Als erstes habe ich eine Klasse Punkt die momentan so aussieht:
Java:
 package geometrie;

public class Punkt 
{
    // Attribute
    private int xKoordinate;
    private int yKoordinate;
    
    //Methoden
    // Getter und Setter
    
    public int getxKoordinate()
    {
	return xKoordinate;
    }
    
    public int getyKoordinate()
    {
	return yKoordinate;
    }

    public void setxKoordinate(int xKoordinate)
    {
	this.xKoordinate = xKoordinate;
    }
    
    public void setyKoordinate(int yKoordinate)
    {
	this.yKoordinate = yKoordinate;
    }
    
    // Konstruktor
    
    public Punkt(int x, int y)
    {
	xKoordinate = x;
	yKoordinate = y;
    }
    
    Punkt(Punkt p2)
    {
	xKoordinate = p2.xKoordinate;
	yKoordinate = p2.yKoordinate;
    }
    
    public double abstand(Punkt p)
    {
	return Math.sqrt(Math.pow(xKoordinate - yKoordinate, 2) + Math.pow(p.xKoordinate - p.yKoordinate, 2));
    }
    
    public void verschieben(int deltaX, int deltaY)
    {
	xKoordinate += deltaX;
	yKoordinate += deltaY;
    }
    
    boolean equals(Punkt p1)
    {
	if(p1 instanceof Punkt)
	    return true;
	else 
	    return false;
    }
    
}
(könnte noch einige Fehler enthalten)


Die darauf folgende Klasse wäre die Klasse Gerade.
Diese besitzt eine Methoden vom Typ double namens laenge() jedoch weiß ich nicht wie ich auf die leange der Gerade komme. Meine Klasse sieht momentan so aus:

Java:
package geometrie;

public class Gerade 
{
   private Punkt startPos;
   private Punkt endPos;
    
    public Punkt getStartPos()
    {
	return startPos;
    }
    
    public void setStartPos(Punkt startPos)
    {
	this.startPos = startPos;
    }
    
    public Punkt getEndPos()
    {
	return endPos;
    }
    
    public void setEndPos(Punkt endPos)
    {
	this.endPos = endPos;
    }
    
    public Gerade(Punkt start, Punkt ende)
    {
	startPos = start;
	endPos = ende;
    }
    
    public double laenge()
    {
	
    }
    
    public boolean istLaengerAls(Gerade g2)
    {
	if(laenge() > g2.laenge())
	    return true;
	else 
	    return false;
    }
    
    public boolean equals(Gerade g2)
    {
	if(laenge() == g2.laenge())
	    return true;
	else
	    return false;
    }
}

Könnte mir vielleicht jemand weiter helfen?


Vielen Dank,
jimmo
 
Zuletzt bearbeitet:

Ruzmanz

Top Contributor
Satz des Pythagoras aus dem Matheunterricht :rtfm: Methoden zum Quadrieren und Wurzelziehen gibt es in der Klasse Math.

Math.sqrt(x) und Math.pow(x, 2)

PS: Habe den Code nicht durchgelesen ... Die Länge einer Strecke ist der Abstand von zwei Punkten.
 
Zuletzt bearbeitet:

jimmo

Mitglied
Vielen Dank für die schnelle Antwort.
Dass die Länge meiner Gerade der Abstand zweier Punkte ist, ist mir bewusst.
Jedoch weiß ich nicht wie ich auf diese Punkte zurück greifen kann, denn endPos - startPos funktioniert nicht da sie nicht vom Typ double sind.
 

stg

Top Contributor
Ääähhhmm.... du hast doch schon eine Funktion abstand geschrieben?! Wieso benutzt du die nicht einfach?:autsch:
 

jimmo

Mitglied
Würde ich ja, weiß nur nicht wie ich auf die Methode abstand zurückgreifen kann.
Entschuldigung wenn ich mich schwer tue bin halt noch am Anfang.
 

stg

Top Contributor
Du weißt also, wie du auf die Methode laenge von Gerade zugreifst, aber nicht, wie du auf die Methode abstand von Punkt zugreifst?
Klingt irgendwie merkwürdig für mich....
._.
 

jimmo

Mitglied
Ja genau, da beide verschiedener Klassen sind.
Ich weiß nicht wie ich in der Klasse Gerade auf die Klasse Punkt zurück greifen kann.
 

stg

Top Contributor
Probier es doch einfach mal genau so aus, wie du es vorher auch schon gemacht hast.
Denk doch bitte wenigstens mal einen halben Schritt mit...
 

jimmo

Mitglied
oh, hab das jetzt so geschrieben:
Java:
    public double laenge()
    {	
	Punkt p1, p2;
	double start = Math.sqrt(Math.pow(p1.getxKoordinate() - p1.getyKoordinate(), 2));
	double ende = Math.sqrt(Math.pow(p2.getxKoordinate() - p2.getyKoordinate(), 2));
	return ende + start;
    }

Könnte ich das so schreiben? Wenns falsch ist könnte ich bitte eine Erklärung dazu erhalten?
Danke
 
Zuletzt bearbeitet:

stg

Top Contributor
Das ist totaler Blödsinn, und ich glaube dir ist einfach langweilig und daher trollst du hier ein wenig.
Ich bin raus, gute Nacht :)
 

Ruzmanz

Top Contributor
Absolut nicht. Du solltest nicht 2 beliebige Punkte nehmen, sondern DEN StartPunkt und DEN Endpunkt deiner "Geraden". Zudem ergibt die Formel keinen Sinn. Das findest du selbst heraus, wenn du einfach ein paar Strecken auf dem Blatt Papier ausrechnest.
 

jimmo

Mitglied
hmm.. ich weiß es wirklich nicht sonst würde ich nicht um Rat fragen.
hab besseres zu tun als trollen glaub mir.
wenn mit jemand ne Erklärung geben könnte würde ichs ja vielleicht verstehen..
 

Neue Themen


Oben