Probleme mit Cos() und Sin()

Anfängerfragen zum Programmieren mit PureBasic.
Special-Agent-J
Beiträge: 51
Registriert: 05.10.2008 10:13

Probleme mit Cos() und Sin()

Beitrag 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
Achtung ich hab leider nur die demo von 4.3 und von der kaufversion leider nur 3.3
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Soweit ich weis verwendet PB Radiant und Windows Grad um den Winkel zu berechnen, musst du erst umrechen.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Special-Agent-J
Beiträge: 51
Registriert: 05.10.2008 10:13

Beitrag 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
Achtung ich hab leider nur die demo von 4.3 und von der kaufversion leider nur 3.3
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag 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
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Special-Agent-J
Beiträge: 51
Registriert: 05.10.2008 10:13

Beitrag 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
Achtung ich hab leider nur die demo von 4.3 und von der kaufversion leider nur 3.3
Special-Agent-J
Beiträge: 51
Registriert: 05.10.2008 10:13

Beitrag 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
Achtung ich hab leider nur die demo von 4.3 und von der kaufversion leider nur 3.3
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

seit 3.8 oder sowas ist #PI eine vordefinierte Konstante.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Special-Agent-J
Beiträge: 51
Registriert: 05.10.2008 10:13

Beitrag 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
Achtung ich hab leider nur die demo von 4.3 und von der kaufversion leider nur 3.3
Benutzeravatar
HeX0R
Beiträge: 3040
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Antworten