Hallo zusammen,
ich habe ein Problem beim Berechnen der Geradengleichung bei zwei gegebenen Punkten. Die Formel dafür ist klar, aber bei der Berechnung tritt ein seltsamer Fehler auf. Hier erst mal die Funktion:
Wenn ich das mit folgenden Werten rechnen lasse...
Punkt 1: x=2.5
Punkt 1: y=5.5
Punkt 2: x=3.5
Punkt 2: y=4.5
... kommt das raus:
m=-1.000000 n=7.000000
n solte ja eigentlich 8 sein oder irre ich mich da?
Gruß
jojomp
P.S.: Viele kennen die Formel warscheinlich eher als f(x) = ax + b
Edit: Ich habe gerade festgestellt, dass der Fehler nur bei Zahlen mit Nachkommastellen auftritt. n sollte -1 sein, die Funktion berechnete 0.
ich habe ein Problem beim Berechnen der Geradengleichung bei zwei gegebenen Punkten. Die Formel dafür ist klar, aber bei der Berechnung tritt ein seltsamer Fehler auf. Hier erst mal die Funktion:
Code:
void geradengleichung(int points[2][2]) {
float y2=points[1][1], y1 = points[0][1];
float x2=points[1][0], x1 = points[0][0];
// Geradengleichung ermitteln: f(x) = mx + n
float m,n;
m = (y2 - y1) / (x2 - x1);
n = y2 - (m*x2);
printf("m=%f n=%f\n",m,n);
}
Punkt 1: x=2.5
Punkt 1: y=5.5
Punkt 2: x=3.5
Punkt 2: y=4.5
... kommt das raus:
m=-1.000000 n=7.000000
n solte ja eigentlich 8 sein oder irre ich mich da?
Gruß
jojomp
P.S.: Viele kennen die Formel warscheinlich eher als f(x) = ax + b
Edit: Ich habe gerade festgestellt, dass der Fehler nur bei Zahlen mit Nachkommastellen auftritt. n sollte -1 sein, die Funktion berechnete 0.
Zuletzt bearbeitet: