Hallo,
ich programmiere gerade für eine SPS die mathematische Funktion "Arcustangens mit 2 Argumenten", ATAN2, nach.
Bezüglich der Definition halte ich mich
hieran.
Bei meinen SPS-Tests vergleiche ich die Ergebnisse mit
ATAN2 online und einem Delphi-Programm.
Bei X-Werten >0 bzw. =0 stimmen alle 3 Ergebnisse überein (also SPS, Delphi und "ATAN2 online").
Nur bei Werten <0 rechnen Delphi und "ATAN2 online" gleich, meine SPS aber nicht. Wenn ich die Werte manuell nachrechne, komm ich (laut Definition) auf das gleiche Ergebnis wie die SPS. Laut dieser Gegenrechnung stimmt meine SPS-Logik/-Berechnung.
Nur warum ermittelt Delphi andere Werte?
Zum Testen:
Delphi-Quellcode:
Uses
Math;
procedure TForm1.Button1Click(Sender: TObject);
var
X, Y, Result: Extended;
begin
Y := -44.2;
X := -23;
Result := arctan2(Y, X);
Label1.Caption := FloatToStr(Result);
end;