Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wurzel & Winkelberechnung (https://www.delphipraxis.net/177701-wurzel-winkelberechnung.html)

Python 21. Nov 2013 17:30

Delphi-Version: 5

Wurzel & Winkelberechnung
 
Delphi-Version: 4 (stand leider nicht zur Auswahl)

Ich möchte ein Programm schreiben, welches den Winkel von 2 Verschiebungsvektoren berechnet.

Code:
float := ArcCos((a1*b1+a2*b2+a3*b3)/(Sqrt(power(a1,2)+power(a2,2)+power(a3,2)*Sqrt(power(b1,2)+power(b2,2)+power(b3,2)))));
     float := RadToDeg(float);
     Edit1.Text := FloatToStr(float) + ' Grad';
Es kommt kein Fehler beim Kompilieren, aber wenn ich den Button zur Berechnung drücke erscheint folgende Nachricht:

Klasse: EInvalidOp
Meldung: Ungültige Gleitkommazahl

Wie behebe ich das, sodass er mir den Winkel ausgibt?

Mit freundlichen Grüßen

Python

Uwe Raabe 21. Nov 2013 17:33

AW: Wurzel & Winkelberechnung
 
Da müsste man schon wissen, welche Werte in den jeweiligen Variablen stehen.

Übrigens: sqr(x) gibt das Quadrat von x.

Python 21. Nov 2013 17:36

AW: Wurzel & Winkelberechnung
 
Vektor1: 1|0|3
Vektor2: 1|-1|3

Rechnung sollte sein:
a1*b1 + a2*b2 + a3*b3 geteilt duch Wurzel(a1²+a2²+a3²) * Wurzel(b1²+b2²+b3²)
Und das Ergebnis soll dann noch mit "cos-1" gerechnet werden. (Auf dem Taschenrechner ist es "cos hoch -1")

Denke ich habe mich bei der Rechnung bei Delphi vertan. :-$

Mathematiker 21. Nov 2013 17:49

AW: Wurzel & Winkelberechnung
 
Hallo,
Zitat:

Zitat von Python (Beitrag 1236959)
Code:
float := ArcCos((a1*b1+a2*b2+a3*b3)/(Sqrt(power(a1,2)+power(a2,2)+power(a3,2)*Sqrt(power(b1,2)+power(b2,2)+power(b3,2)))));
     float := RadToDeg(float);
     Edit1.Text := FloatToStr(float) + ' Grad';

Die Klammern stehen falsch. Der Betrag ist für jeden Vektor einzeln zu berechnen, d.h. nach der 1.Wurzel muss eine Klammer stehen, die bei Dir fehlt:
Code:
Sqrt(power(a1,2)+power(a2,2)+power(a3,2))
Entsprechend bei dem 2.Vektor. Wie schon erwähnt, wäre allerdings entweder
Code:
Sqrt(sqr(a1)+sqr(a2)+sqr(a3))
oder
Code:
Sqrt(a1*a1+a2*a2+a3*a3)
übersichtlicher.

Beste Grüße
Mathematiker

Python 21. Nov 2013 17:57

AW: Wurzel & Winkelberechnung
 
Ihr seid echt super :thumb:

Ich war hier schon öfter auf der Seite und hatte mich dann eben entschlossen mich hier anzumelden.

Vielen vielen Dank :)

Mit freundlichen Grüßen

Python

Frank Ranis 22. Nov 2013 17:06

AW: Wurzel & Winkelberechnung
 
Hallo Python.

kennst Du diese Seite.

http://wiki.delphigl.com/index.php/T...ineare_Algebra

Gruß

Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:02 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