Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Sinus/Cosinus Funktionen (https://www.delphipraxis.net/14799-sinus-cosinus-funktionen.html)

JASH 15. Jan 2004 21:29


Sinus/Cosinus Funktionen
 
Komme mit der Delphi-Hilfe und den entsprechenden Funktionen nicht wirklich weiter. Hab zwar ne Sinus-Funktion gefunden,
Delphi-Quellcode:
var

  R: Extended;
  S: string;
begin
  R := Sin(Pi);
  Str(R:5:3, S);
  Canvas.TextOut(10, 10, 'The Sin of Pi is ' + S);
end;
aber wenn ich da Winkelwerte eintrage komme ich zu komplett anderen Ergebnissen als mit dem Taschenrechner.

Habe auch auf etlichen Seiten nachgesehen sowie die Hilfe benutzt, aber dieses Thema ist nirgendwo zu finden, hoffe mal ihr könnt mir weiterhelfen.

JASH

Luckie 15. Jan 2004 21:34

Re: Sinus/Cosinus Funktionen
 
Musst du erst von Deg nach Rad umrechnen. DegToRad und zurück mit RadToDeg ist auch in der Unit Math drin.

Mirilin 15. Jan 2004 21:37

Re: Sinus/Cosinus Funktionen
 
:hi:

Die Hilfe
Sin gibt den Sinus des mit X angegebenen Winkels im Bogenmaß (Rad) zurück . . .

Hast du deinen TI auf Bogenmass eingestellt?

Wenn ich den Sinus von
pi im Bogenmass nehme krieg ich 0.
pi° aber, also Gradmass gibt 0.054

2pi im Bogenmass entspricht 360° im Gradmass = voller Kreis.

vielleicht hilft dir ja das.

mfg Tobias

Chewie 15. Jan 2004 21:37

Re: Sinus/Cosinus Funktionen
 
Die trigonometztischen Funktionen der Delphi-Bilbiothek nehmen nur Werte im Bogenmaß entgegen.
Winkelwerte müssen also zuerst umgewandelt werden.

Hinweis: Multipliziere den Winkelwert mit ((2 x pi) / 360).

JASH 15. Jan 2004 21:49

Re: Sinus/Cosinus Funktionen
 
@Chewie danke, aber ich bleibe dann lieber bei radtodeg/degtorad wie es Luckie geschrieben hat, ist einfacher :-D

@Luckie und Mirlin danke, so funzt es, auch wenn ich dazu nicht direkt was in der Delphi-hilfe gefunden habe. Hab da nur noch ein kleines Problem, und zwar wenn ich einen Winkel umrechne erhalte ich den korrekten Sinus-Wert, wenn ich ihn aber wiede rzurück rechne stimmt er nicht mehr mit dem winkel überein bzw. der Winkel wird immer kleiner desto grösser der Ursprungswinkel ist.

JASH 16. Jan 2004 06:42

Re: Sinus/Cosinus Funktionen
 
Hmmm, der erste teil funzt nun, noma vielen dank, aber wenn ich die Sinus-Werte zurückrechne bekomme ich immer falsche Ergebnisse raus, bei kleinen Winkeln stimmt es noch ungefähr, bei grösseren aber dann garnicht mehr, hoffe mal ihr könnt mir da genauso schnell weiterhelfen wie zuvor :)

Delphi-Quellcode:
var
  R: Extended;
  S: string;
begin
  R := DegToRad(R);
  R := Sin(R);
  Str(R:5:3, S);
  Canvas.TextOut(10, 10, 'Sinus: ' + S);{Bis hierhin stimmt der Sinuswert}
  R := sinh(R);
  R := RadToDeg(R);
  Str(R:5:3, S);
  Canvas.TextOut(10, 10, 'Winkel: ' + S);{Hier erhalte ich dann die falschen Werte zurück bzw. von dem sinh}
end;

Luckie 16. Jan 2004 06:46

Re: Sinus/Cosinus Funktionen
 
Klingt ganz nach einen Rundungsfehler. Da wirst du nichts machen können. Selbst bei Extended ist irgendwann schluss mit den Stellen und die CPU muss runden / abschneiden. Liegt aber in der Natur der Sache, da eine Zahl mit unendlich vielen oder auch endlich vielen, wenn es nur genug sind, Nachkomma stellen, nie exakt im Dualsystem abgebildet werden kann.

JASH 16. Jan 2004 09:30

Re: Sinus/Cosinus Funktionen
 
@Luckie dachte ich am Anfang auch, aber da sind am ende über 20° Differenz dabei und dass kann kein Rundungsfehler mehr sein. Da ein stinknormaler Taschenrechner die Werte auch problemlos umrechnen kann, Delphi aber weit mehr und ausgefeiltere Werkzeuge dafür zur Verfügung hat dachte ich dass es eigentlich leichter sein sollte. Kann es sein dass der Befehl sinh() falsch ist ?

MikeS 16. Jan 2004 09:35

Re: Sinus/Cosinus Funktionen
 
laut OH

Sinh berechnet den hyperbolischen Sinus eines Winkels.

also wenn du da möchtest hast du den richtigen
ansonsten gibt es da noch

Die Funktion Sin berechnet den Sinus eines Winkels.
ebenfalls aus der OH

choose 16. Jan 2004 09:45

Re: Sinus/Cosinus Funktionen
 
sinh berechnet den hyperbolischen Sinus eines Winkels, die Umkehrfuntion zu sin jedoch berechnet sich, wie in der Mathematik üblich, mit dem arcsin.
Bitte beachte, dass die Sinusfunktion symetrisch und zyklisch ist, so dass gemäß der def von arcsin nur für
Code:
-0.5*pi<=r<=0.5*pi
gilt:
Code:
r=arcsin(sin(r))
Puh, schon lange her... :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:24 Uhr.
Seite 1 von 2  1 2      

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