Problem mit verschiedenen Klassen

Ich habe mal wieder ein problem mit einem Programm, scheint an meinem Programmierstil zu liegen, da ich ständig solche ähnlichen Probleme habe, aber da ich keine Lust habe die beiden Klassen wieder einzustampfen und alles im Hauptprogramm zu rechnen schildere ich euch hier mein problem.

Ich habe eine Klasse Dot und eine Klasse Gerade,
in der Klasse Dot existiert folgende Funktion:

public boolean istInDreieck(Dot p1, Dot p2, Dot p3) {
[…]
Gerade g1 = new Gerade (p2,p3);
Gerade g2 = new Gerade (p1,this);

Dot sp = new Dot(g1.getSchnittX(g2),g1.getSchnittY(g2));

//Dot sp = new Dot();
//sp = g1.getSchnittpunkt(g2);
(alternativ dies, aber funktioniert nicht, siehe weiter unten)
[…]
}

dies sind die Konstruktoren:

private int xi, yi;
private double xd, yd;
public Dot() {
xi = 0;
yi = 0;
}
public Dot(int x, int y) {
xi = x;
yi = y;
}
public Dot(double x, double y) {
double xd = x;
double yd = y;
}

Die Klasse Gerade beinhaltet die Funktion:

public Dot getSchnittpunkt(Gerade g){
double schnittX = (g.getN() - this.getN()) / (this.getM() - g.getM());
double schnittY = g.getM() * schnittX + g.getN();
Dot erg = new Dot(schnittX, schnittY);
return erg;
}

diese Funktion funktioniert nicht erg ist immer (0,0) obwohl schnittX und schnittY existieren :frowning:
daher gibt es noch diese beiden funktionen die klappen:

public double getSchnittX(Gerade g){}
und
public double getSchnittY(Gerade g){}

##########################################

Wenn ich nun die Funktion istInDreieck in meinem Hauptprogramm verwende kommt immer Müll heraus, da „sp“ immer (0,0) ist.
Wie kann ich das beheben?

Vielen Dank, Wizard of War

Hallo Wizard,

Kannst Du alle Klassen inkl. der mit der Mainmethode posten?
Dann kann ich das mal nachvollziehen.

Gruss, Simon

Du hast Post
Da dies hier den Rahmen sprengen würde hab ich dir mal Post geschickt.

Danke, Wizard of War


dies sind die Konstruktoren:

private int xi, yi;
private double xd, yd;
public Dot() {
xi = 0;
yi = 0;
}
public Dot(int x, int y) {
xi = x;
yi = y;
}
public Dot(double x, double y) {
double xd = x;
double yd = y;
}

genau hier lag der Fehler, die Variablen xd, und yd wurden einmal global und einmal lokal definiert. :frowning:
Dann kanns ja net klappen…

Super!
Zum Glück habe ich zuerst bei W-W-W vorbeigeschaut.
Hätte jetzt dann gleich angefangen zu suchen :wink:

Gruss, Simon