Seite 1 von 1

Probleme mit Cos() und Sin()

Verfasst: 07.01.2009 19:15
von Special-Agent-J
ich möchte schon das mein taschenrechner richtig funzt (http://www.purebasic.fr/german/viewtopic.php?t=18750) und dabei ist mir aufgefallen das wenn ich ein kleines programm schreibe um cos() und sin() debuggen zu lassen andere werte rauskommen wie beim Windows taschenrechner
hier mal ein Wert zum vergleich:
Cosinus von 4 mit purebasic debuggt -0.65364360809326
mit windows 0,99756405025982424761316268064426
irgendwie schon ein ganz schön großer werteunterschied ist das normal oder ist mein programm irgendwie falsch?
hier mal mein mini programm

Code: Alles auswählen

Ergebnis.f= Cos(4)
Debug Ergebnis
na ja also ich denk mal irgendwer weiß schon bescheid gibt ja viele kluge leute in dem forum :-)
Schon mal Danke im Voraus für jede konstruktive hilfe

Verfasst: 07.01.2009 19:17
von cxAlex
Soweit ich weis verwendet PB Radiant und Windows Grad um den Winkel zu berechnen, musst du erst umrechen.

Verfasst: 07.01.2009 19:19
von Special-Agent-J
cxAlex hat geschrieben:Soweit ich weis verwendet PB Radiant und Windows Grad um den Winkel zu berechnen, musst du erst umrechen.
danke für die schnelle antwort
tja leider weiß ich nicht was radiant ist und erst recht nicht wie man das umrechnet

Verfasst: 07.01.2009 19:20
von cxAlex
> tja leider weiß ich nicht was radiant ist und erst recht nicht wie man das umrechnet

http://de.wikipedia.org/wiki/Radiant_%28Einheit%29

Verfasst: 07.01.2009 19:23
von Kaeru Gaman
Radiant ist die Länge des Kreisbogens im Einheitskreis.
also für einen Kreis mit dem Radius 1

ein Winkel von 90° hat einen Kreisbogen der Länge pi/2
ein Vollkreis von 360° hat einen Umfang von 2*pi

=>
Radiant = Grad * pi / 180
Grad = Radiant * 180 / pi

Verfasst: 07.01.2009 19:27
von Special-Agent-J
Kaeru Gaman hat geschrieben:Radiant ist die Länge des Kreisbogens im Einheitskreis.
also für einen Kreis mit dem Radius 1

ein Winkel von 90° hat einen Kreisbogen der Länge pi/2
ein Vollkreis von 360° hat einen Umfang von 2*pi

=>
Radiant = Grad * pi / 180
Grad = Radiant * 180 / pi
so mag ich das :D
lauter konstruktive beiträge und der hier hilft auch wirklich weiter hab in wikipedia mir die umrechnungen angeguckt, die versteht ja kein mensch xD, aber das ist ein super beitrag danke dir :allright:
werd gleich mal versuchen das in mein code einzubauen

Verfasst: 07.01.2009 19:37
von Special-Agent-J
so hab jetzt den code umgeschrieben und werd ihn in taschenrechner einsetzten vielleicht kanns ja mal irgendwer noch brauchen deshalb schreib ich den hier mal rein

Code: Alles auswählen

Radiant.d=5*3.14159265358979323/180  ;5 kann beliebig verändert werden
Ergebnis.d=Cos(Radiant)
Debug Ergebnis

Verfasst: 07.01.2009 19:42
von Kaeru Gaman
seit 3.8 oder sowas ist #PI eine vordefinierte Konstante.

Verfasst: 07.01.2009 19:57
von Special-Agent-J
Kaeru Gaman hat geschrieben:seit 3.8 oder sowas ist #PI eine vordefinierte Konstante.
hab ich mir schon fast gedacht
na ja hier schnell der verbesserte code

Code: Alles auswählen

Radiant.d=5*#PI/180 ;5 kann durch alles ersetzt werden
Ergebnis.d=Cos(Radiant)
Debug Ergebnis
nochmal fettes thx @kaeru gaman

Verfasst: 07.01.2009 22:32
von HeX0R