![]() |
Trigonometrische Funktionen im Gradmaß
Bei der Frage nach dem Bogenmass finde ich immer wieder fragende Gesichter.
Hier kann man sich schlau machen: ![]() Gemäß Dreisatz gilt: alpha(bogen)/alpha(grad)=2*PI/360 Grad oder alpha(bogen)=alpha(grad)*PI/180 Grad woraus folgt:
Delphi-Quellcode:
Anmerkung:
function sinus(alpha:real):real;
var bogen:real; begin bogen:=alpha*pi/180; sinus:=sin(bogen); end; function cosinus(alpha:real):real; var bogen:real; begin bogen:=alpha*pi/180; cosinus:=cos(bogen); end; function tangens(alpha:real):real; var bogen:real; begin bogen:=alpha*pi/180; tangens:=(sin(bogen)/cos(bogen)); end; function cotangens(alpha:real):real; var bogen:real; begin bogen:=alpha*pi/180; cotangens:=cos(bogen)/sin(bogen); end; Bei den Funktionen Tangens und Cotangens wird eventuell durch Null geteilt. Das muss der Programmierer natürlich abfangen! Wer es noch einfacher will, schaut sich bitte die Delphi-Funktionen DegToRad und RadToDeg aus der Unit Math an. Beispiele findest du hier: ![]() |
Re: Trigonometrische Funktionen im Gradmaß
Jedes mal, wenn der Parameter Alpha den Wert 0 hat, wird letztendlich durch 0 geteilt.
Edit: Alpha vergessen :oops: |
Re: Trigonometrische Funktionen im Gradmaß
Das stimmt so nicht ganz.
Aufpassen muß man bei tangens(90) bzw. tan(pi/2) und bei cotangens(180) bzw. cot(pi) und Faktoren davon oder einfacher, wenn das Ergebnis des Nenners Null wird. mfg Wolfgang |
Re: Trigonometrische Funktionen im Gradmaß
IMHO ist das Prinzip dieser Routinen fragwürdig - trigonometrische Funktionen fressen nun mal Bogenmaß (oder spucken es aus, jenachdem :)). Ich finde es besser, intern durchgehend mit Bogenmaß zu arbeiten, und an wenigen, genau definierten Stellen (Schnittstelle zum Benutzer o.ä.) mit DegToRad und RadToDeg umzuwandeln.
|
Re: Trigonometrische Funktionen im Gradmaß
Deine Meinung kann man so gelten lassen. Dazu kommt, daß im wirklichen Leben die trigonometrischen Funktionen aus Taylor'schen Reihen abgeleitet werden, unabhängig von Programmiersprache und Plattform.
|
Re: Trigonometrische Funktionen im Gradmaß
Liste der Anhänge anzeigen (Anzahl: 1)
Der Vollstndigkeit halder poste ich noch die Arcusfunktionen in Gradmaß.
Die mathematischen Zusammenhänge findet ihr im Anhang (Quelle: Gieck - Technische Formelsammlung). Ungültige Übergabewerte müßt ihr selber abfangen. Nicht vergessen: Unit math einbinden!
Delphi-Quellcode:
implementation
{$R *.dfm} function ArcSinus(x:real):real; begin Result:=arcsin(x)*180/pi; end; function ArcCosinus(x:real):real; begin Result:=arccos(x)*180/pi; end; function ArcTangens(x:real):real; begin Result:=arctan(x)*180/pi; end; function ArcCotangens(x:real):real; begin Result:=arctan(1/x)*180/pi; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 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 by Thomas Breitkreuz