![]() |
Arcustangens mit 2 Argumenten
Hallo,
ich programmiere gerade für eine SPS die mathematische Funktion "Arcustangens mit 2 Argumenten", ATAN2, nach. Bezüglich der Definition halte ich mich ![]() Bei meinen SPS-Tests vergleiche ich die Ergebnisse mit ![]() 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; |
AW: Arcustangens mit 2 Argumenten
*ganz böse Wörter sage, die um die Uhrzeit nicht jugendfrei sind*
Hätte Wikipedia Klammern gesetzt, wäre es eindeutiger gewesen Es muss heissen "atan(y/x)+Pi", bzw "atan(y/x)-Pi" Nachdem ich den Math-Code rauskopiert hab und in meine Unit übernommen hab, konnt ich den Code debuggen und bin so drauf gekommen |
AW: Arcustangens mit 2 Argumenten
Man muss zur Verteidigung Wikipedias aber sagen, dass wenn ein Argument einer Funktion nicht geklammert ist, stets nur das erste Argument bis zum nächsten Operator/Funktion zählt. Das ist gar nicht so unüblich :) (Und du hast uns leider nicht den SPS Code gezeigt, sondern nur den funktionieren Delphi-Code, so dass wir diesen Fehler niemals hätten finden können.)
|
AW: Arcustangens mit 2 Argumenten
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz