Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi ArcCos Winkelberechnung (https://www.delphipraxis.net/202231-arccos-winkelberechnung.html)

DBR 10. Okt 2019 19:08

ArcCos Winkelberechnung
 
Ich bin echt zu blöd! :oops:
Ich habe ein Dreieck mit den Seiten A=40, B=40, C=18. Ich suche den spitzen Winkel, der C
gegenüberliegt. Wenn ich meine Werte in einen Online-Rechner eingebe, erhalte ich
erwartungsgemäß einen Winkel von rund 26 Grad. Die dazu benutzte Formel ist angeblich
γ = arccos( (a² + b² - c²) / 2ab )
Wenn ich das mit Delphi 2010 selbst programmieren will, kommt die Fehlermeldung
"Ungültige Gleitkommeoperation". Was mache ich falsch? Oder stimmt die Formel nicht?

Code:
function ArcCos(const X: Double): Double; // stammt aus Unit Math
asm
  FLD  X
  FLD1
  FADD ST(0), ST(1)
  FLD1
  FSUB ST(0), ST(2)
  FMULP ST(1), ST(0)
  FSQRT
  FXCH   // Absturz
  FPATAN
end;

  function winkel(a, b, c: Double): Double;
  var
    X: Double;
  begin
    // arccos( (a² + b² - c²) / 2ab )
    X := (a * a + b * b - c * c) / 2 * a * b;
    result := ArcCos(X) * (180 / PI);
  end;

  procedure TForm1.Button2Click(Sender: TObject);
  var
    Gamma: Double;
  begin
    Gamma := winkel(40.0, 40.0, 18.0);
  end;

stpolster 10. Okt 2019 19:11

AW: ArcCos Winkelberechnung
 
Code:
    X := (a * a + b * b - c * c) / (2 * a * b);
Dem Nenner fehlen die Klammern.

LG Steffen

DBR 11. Okt 2019 16:28

AW: ArcCos Winkelberechnung
 
Autsch! Betriebsblind!

Danke sehr!

DualCoreCpu 13. Okt 2019 18:02

AW: ArcCos Winkelberechnung
 
Nach Pythagoras ist a*a + b*b = c*c!

Und a+a + b*b - c*c = 0!

Andreas13 13. Okt 2019 19:01

AW: ArcCos Winkelberechnung
 
Zitat:

Zitat von DualCoreCpu (Beitrag 1449553)
Nach Pythagoras ist a*a + b*b = c*c!

Und a+a + b*b - c*c = 0!

Du meinst bestimmt a*a + b*b - c*c = 0!
Gruß, Andreas

Michael II 13. Okt 2019 20:20

AW: ArcCos Winkelberechnung
 
Pythagoras gilt ausschliesslich für rechtwinklige Dreiecke mit den dem rechten Winkel anliegenden Seiten a und b. DBR meint allgemeine Dreiecke; und da gilt eben die oben genannte Formel. Also fertig mit Pythagoras oder neues Thema eröffnen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz