Aufruf bringt unterschiedliche Wirkung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Aufruf bringt unterschiedliche Wirkung

    Hi,

    also ich habe eine Funktion die ursprünglich anhand von übergebenen Werten (Werte werden aus einem Array gelesen) was anderes ausgeben als wenn ich die Werte direkt als Zahlen eingebe.

    Ursprünglich wollte ich eine Art Abweichung berechnen, jedoch liefert die Übergabe mit den ArrayInhalten mit -1.#IND - also ein Fehler, der gleiche Aufruf mdirekt mit den Zahlen funktioniert aber und liefert ein Ergebnis.

    Also bin ich auf die Suche gegangen und habe folgendes rausgefunden:

    Das Problem beginnt gleich am Anfang und zieht sich bis zum Ende durch.

    PHP-Code:
    //errechnet Abweichung des Punktes P2(px2, py2) von der liene zwischen den  
    //Punkten P1(px1, py1) P3(px3, py3)  

    function abweichung ($px1$py1$px2,$py2,$px3,$py3)  {            

    //Länge der Dreiecksseiten  
    $a=sqrt(pow(($px3-$px2),2)+pow(($py3-$py2),2));  
    $b=sqrt(pow(($px1-$px3),2)+pow(($py1-$py3),2));  
    $c=sqrt(pow(($px1-$px2),2)+pow(($py1-$py2),2));    

    //Berechnung des eingeschlossenen Winkels von a und b 
    $winkel_c=acos((pow($c,2)-pow($a,2)-pow($b,2))/(-2*$a*$b));  

    //Berechung der Höhe über b  
    $abweichung=$a*sin($winkel_c);    

    return 
    $abweichung

    <- dies die eigentliche Funktion, Testausgaben habe ich entfernt.

    Ursprünglicher Aufruf ist: abweichung($laenge[$i-1],$breite[$i-1],$laenge[$i],$breite[$i],$laenge[$i+1],$breite[$i+1]);

    Direkter Aufruf: abweichung (9.245575,48.807421666667,9.2455566666667,48.807418333333,9.2455383333333,48.807415);

    Die Zahlen stimmen bei der Übergabe noch das wurde überprüft. Liegt es vllt. an den zu langen Nachkommastellen, die bei der Berechnung rauskommen??? Denn schon bei der Berechnung von a,b und c kommt ein Unterschied im Bereich von 0,000000008 - 0,000000009 raus, was scheinbar das Urspüngliche Problem bereitet.
    Zuletzt geändert von k1x; 31.10.2005, 00:09.
Lädt...
X