# Hausaufgabe geometrische Figuren



## jimmo (30. Nov 2014)

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:

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


```
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


----------



## Ruzmanz (30. Nov 2014)

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.


----------



## jimmo (30. Nov 2014)

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 (30. Nov 2014)

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


----------



## jimmo (30. Nov 2014)

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 (30. Nov 2014)

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 (30. Nov 2014)

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 (30. Nov 2014)

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 (30. Nov 2014)

oh, hab das jetzt so geschrieben:

```
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


----------



## stg (30. Nov 2014)

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 (30. Nov 2014)

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 (30. Nov 2014)

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


----------



## jimmo (30. Nov 2014)

oh okay habs jetzt.
vielen dank


----------

