Winkelfunktionen geben falsche Werte zurück
Winkelfunktionen geben falsche Werte zurück
PureBasic gibt mir folgende Werte zurück :
cos(15) = -0.75968791285882131
cos(45) = 0.52532198881772973
cos(180) = -0.59846006905785809
cos(225) = 0.36731936773024515
cos(360) = -0.28369109148652732
Die realen Werte sind aber doch:
cos(15) = 0,9659
cos(45) = 0,7071
cos(180) = -1
cos(225) = -0,7071
cos(360) = 1
Muss die Funktion vielleicht noch kallibriert werden ???
cos(15) = -0.75968791285882131
cos(45) = 0.52532198881772973
cos(180) = -0.59846006905785809
cos(225) = 0.36731936773024515
cos(360) = -0.28369109148652732
Die realen Werte sind aber doch:
cos(15) = 0,9659
cos(45) = 0,7071
cos(180) = -1
cos(225) = -0,7071
cos(360) = 1
Muss die Funktion vielleicht noch kallibriert werden ???
Man kann alles sagen, man muss es nur vernünftig begründen können.
Ich hasse WASD-Steuerung | Ohne Pix saug ich nix | www.travis.bplaced.net
Ich hasse WASD-Steuerung | Ohne Pix saug ich nix | www.travis.bplaced.net
Re: Winkelfunktionen geben falsche Werte zurück
Siehe PureBasic-Hilfe
==> Bogenmaß
==> Umrechnung zwischen Radiant und Grad
Hoffe, das hilft einen Schritt weiter
cu,
helpy
Siehe:Syntax
BeschreibungCode: Alles auswählen
Ergebnis.f = Sin(Winkel.f)
Gibt den Sinus des angegebenen Winkels zurück, 'Winkel.f' muss im Bogenmaß (Radiant) angegeben werden, das Ergebnis wird zwischen -1 und 1 liegen.
==> Bogenmaß
==> Umrechnung zwischen Radiant und Grad
Hoffe, das hilft einen Schritt weiter
cu,
helpy
Windows 10
PB Last Final / (Sometimes testing Beta versions)
PB Last Final / (Sometimes testing Beta versions)
Re: Winkelfunktionen geben falsche Werte zurück
Wie geil, das ist echt Zitatwürdig.Winkelfunktionen geben falsche Werte zurück. [...] Muss die Funktion vielleicht noch kallibriert werden ???
Zum glück hast du das gesehen ^^ und wir rechnen alle seit über 7 jahren mit unkallibriert Werten
BTW: Cos(180) = -1 ist so oder so falsch! wenn dann Cos(180°) = -1 !!
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Winkelfunktionen geben falsche Werte zurück
@ helpy
Na doll. Bin es seit 9 Jahren gewohnt immer direkt den Winkel anzugeben. Zum Glück kann man sich ja 'ne Funktion dafür schreiben. In diesem Sinne hatte ich wohl doch recht mit der Kallibrierung
@ STARGÅTE bin auch gerade wieder am gucken
hier stand was was gelöscht wurde wegen mittlerweiliger bezugslosigkeit
(bobobo)
Na doll. Bin es seit 9 Jahren gewohnt immer direkt den Winkel anzugeben. Zum Glück kann man sich ja 'ne Funktion dafür schreiben. In diesem Sinne hatte ich wohl doch recht mit der Kallibrierung
@ STARGÅTE bin auch gerade wieder am gucken
hier stand was was gelöscht wurde wegen mittlerweiliger bezugslosigkeit
(bobobo)
Man kann alles sagen, man muss es nur vernünftig begründen können.
Ich hasse WASD-Steuerung | Ohne Pix saug ich nix | www.travis.bplaced.net
Ich hasse WASD-Steuerung | Ohne Pix saug ich nix | www.travis.bplaced.net
Re: Winkelfunktionen geben falsche Werte zurück
Die Botschaft ist mittlerweile angekommen. Habe das Problem jetzt gelöst.
Code: Alles auswählen
InitSprite()
InitKeyboard()
ResX = 800
ResY = 600
OpenWindow(0, 0, 0, 800, 650, "Cossin",#PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget)
ButtonGadget(1, 0, 600, 100, 50, "Hide Cos") : ShowCos = 1
ButtonGadget(2, 100, 600, 100, 50, "Hide Sin") : ShowSin = 1
TextGadget(5, 250,605,50,20,"Amplitude:")
TextGadget(6, 250,625,50,20,"Amplitude:")
TrackBarGadget(3, 300, 600, 100, 20, 0, 200): SetGadgetState(3, 40): GadgetToolTip(3,"Kosinus") ; Schieber Kosinus
TrackBarGadget(4, 300, 620, 100, 20, 0, 200): SetGadgetState(4,100): GadgetToolTip(4,"Sinus") ; Schieber Sinus
OpenWindowedScreen(WindowID(0), 0, 0, ResX, ResY, 0, 0, 0)
Procedure.f CosW(w)
ProcedureReturn Cos((3.141592653589793238/180)*w)
EndProcedure
Procedure.f SinW(w)
ProcedureReturn Sin((3.141592653589793238/180)*w)
EndProcedure
Repeat
Repeat
Event = WindowEvent() ; Ist etwas im Fenster passiert?
Select Event
Case #PB_Event_Gadget ; Ein Gadget wurde gedrückt
Select EventGadget()
Case 1 ; Button 1
If ShowCos = 1
ShowCos = 0
SetGadgetText(1,"Show Cos")
Else
ShowCos = 1
SetGadgetText(1,"Hide Cos")
EndIf
Case 2 ; Button 2
If ShowSin = 1
ShowSin = 0
SetGadgetText(2,"Show Sin")
Else
ShowSin = 1
SetGadgetText(2,"Hide Sin")
EndIf
EndSelect
Case #PB_Event_CloseWindow ; Fenster schliessen
End
EndSelect
Until Event = 0
ClearScreen(0)
StartDrawing(ScreenOutput())
For y = 0 To ResY-1 Step 15
For x = 0 To ResX-1 Step 15
Plot(x,y,RGB(100,100,100))
Next
Next
For x = 0 To ResX Step 100
Line(x,0,1,768,RGB(64,64,64))
Next
For y = 0 To ResY Step 100
Line(0,y,1024,1,RGB(64,64,64))
Next
For x = 1 To ResX-1
If ShowCos
h = GetGadgetState(3)
y = h * CosW(x) + ResY/2
Plot(x,y,RGB(0,255,0))
EndIf
If ShowSin
h = GetGadgetState(4)
y = h * SinW(x) + ResY/2
Plot(x,y,RGB(255,0,0))
EndIf
Next
StopDrawing()
FlipBuffers()
ForEver
Man kann alles sagen, man muss es nur vernünftig begründen können.
Ich hasse WASD-Steuerung | Ohne Pix saug ich nix | www.travis.bplaced.net
Ich hasse WASD-Steuerung | Ohne Pix saug ich nix | www.travis.bplaced.net
Re: Winkelfunktionen geben falsche Werte zurück
statt '3.141592653589793238' kannste auch #PI schreiben.
is nicht so lang
lg kevin
is nicht so lang
lg kevin
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
- captain_hesse
- Beiträge: 138
- Registriert: 17.05.2009 18:55
- Computerausstattung: Windows 7 Ultimate 64 Bit / AMD Phenom II 1090T, 6x3200 MHz / AMD HD-6850 / PureBasic 5.1 (x86) (x64)
- Wohnort: Saarland
Re: Winkelfunktionen geben falsche Werte zurück
... aber irgendwas ist trotzdem nicht richtig denn wenn man
eingibt kommt immer was anderes raus.
Warum ??
Code: Alles auswählen
a.f=Sin(#PI/180*50)
b.f=Sin(#PI/180)*50
Debug a
Debug b
Debug Sin(#PI/180*50)
Debug Sin(#PI/180)*50
Warum ??
Windows 7 Ultimate 64 Bit / AMD Phenom II 1090T, 6x3200 MHz / AMD HD-6850 / PureBasic 5.1 (x86) (x64)
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Winkelfunktionen geben falsche Werte zurück
Weil der Debugger double nutzt, hast ihm ja nichts anderes gesagtcaptain_hesse hat geschrieben: eingibt kommt immer was anderes raus.
Warum ??
Code: Alles auswählen
a.d=Sin(#PI/180*50)
b.d=Sin(#PI/180)*50
Debug a
Debug b
Debug Sin(#PI/180*50)
Debug Sin(#PI/180)*50
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
- captain_hesse
- Beiträge: 138
- Registriert: 17.05.2009 18:55
- Computerausstattung: Windows 7 Ultimate 64 Bit / AMD Phenom II 1090T, 6x3200 MHz / AMD HD-6850 / PureBasic 5.1 (x86) (x64)
- Wohnort: Saarland
Re: Winkelfunktionen geben falsche Werte zurück
Das verstehe ich nicht ganz,
1.) ist denn die ungenauigkeit der floats bzw. doubles so extrem ?
2.) wenn man die ersten vier zeilen weg lässt sind die ergebnisse immer noch verschieden.
1.) ist denn die ungenauigkeit der floats bzw. doubles so extrem ?
2.) wenn man die ersten vier zeilen weg lässt sind die ergebnisse immer noch verschieden.
Windows 7 Ultimate 64 Bit / AMD Phenom II 1090T, 6x3200 MHz / AMD HD-6850 / PureBasic 5.1 (x86) (x64)
Re: Winkelfunktionen geben falsche Werte zurück
Ja, ist doch richtig !
Wäre mir neu, wenn Sin oder Cos auf einmal linear wären
Sin und Cos nehmen immer noch das Bogenmaß als Parameter !
und (#PI/180*50) ist ein völlig anderer Winkel als (#PI/180)
Wäre mir neu, wenn Sin oder Cos auf einmal linear wären
Sin und Cos nehmen immer noch das Bogenmaß als Parameter !
und (#PI/180*50) ist ein völlig anderer Winkel als (#PI/180)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr