Aktuelle Zeit: 26.05.2020 03:02

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Winkelfunktionen geben falsche Werte zurück
BeitragVerfasst: 24.03.2010 22:34 
Offline
Benutzeravatar

Registriert: 09.03.2010 19:21
PureBasic gibt mir folgende Werte zurück :o :o :o :

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 :shock: :shock: ???

_________________
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Winkelfunktionen geben falsche Werte zurück
BeitragVerfasst: 24.03.2010 22:39 
Offline
Benutzeravatar

Registriert: 29.08.2004 13:29
Siehe PureBasic-Hilfe
Zitat:
Syntax

Code:
Ergebnis.f = Sin(Winkel.f)


Beschreibung

Gibt den Sinus des angegebenen Winkels zurück, 'Winkel.f' muss im Bogenmaß (Radiant) angegeben werden, das Ergebnis wird zwischen -1 und 1 liegen.


Siehe:
==> Bogenmaß
==> Umrechnung zwischen Radiant und Grad

Hoffe, das hilft einen Schritt weiter ;-)
cu,
helpy

_________________
Windows 10
PB Last Final / (Sometimes testing Beta versions)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Winkelfunktionen geben falsche Werte zurück
BeitragVerfasst: 24.03.2010 22:52 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
:bounce:
Zitat:
Winkelfunktionen geben falsche Werte zurück. [...] Muss die Funktion vielleicht noch kallibriert werden ???

Wie geil, das ist echt Zitatwürdig. :allright:

Zum glück hast du das gesehen ^^ und wir rechnen alle seit über 7 jahren mit unkallibriert Werten :freak:

BTW: Cos(180) = -1 ist so oder so falsch! wenn dann Cos(180°) = -1 !!

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Winkelfunktionen geben falsche Werte zurück
BeitragVerfasst: 24.03.2010 23:19 
Offline
Benutzeravatar

Registriert: 09.03.2010 19:21
@ 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 :wink:

@ STARGÅTE bin auch gerade wieder am gucken 8)

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Winkelfunktionen geben falsche Werte zurück
BeitragVerfasst: 25.03.2010 01:20 
Offline
Benutzeravatar

Registriert: 09.03.2010 19:21
Die Botschaft ist mittlerweile angekommen. Habe das Problem jetzt gelöst.

Code:
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Winkelfunktionen geben falsche Werte zurück
BeitragVerfasst: 25.03.2010 01:39 
Offline
Benutzeravatar

Registriert: 14.12.2008 12:22
statt '3.141592653589793238' kannste auch #PI schreiben.
is nicht so lang
lg kevin

_________________
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite

padawan hat geschrieben:
Ich liebe diese von hinten über die Brust ins Auge Lösungen


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Winkelfunktionen geben falsche Werte zurück
BeitragVerfasst: 31.03.2010 23:10 
Offline
Benutzeravatar

Registriert: 17.05.2009 18:55
Wohnort: Saarland
... aber irgendwas ist trotzdem nicht richtig denn wenn man

Code:
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


eingibt kommt immer was anderes raus.
Warum ?? :?

_________________
Windows 7 Ultimate 64 Bit / AMD Phenom II 1090T, 6x3200 MHz / AMD HD-6850 / PureBasic 5.1 (x86) (x64)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Winkelfunktionen geben falsche Werte zurück
BeitragVerfasst: 31.03.2010 23:13 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
captain_hesse hat geschrieben:
eingibt kommt immer was anderes raus.
Warum ?? :?

Weil der Debugger double nutzt, hast ihm ja nichts anderes gesagt :wink:
Code:
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.71 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 19.3 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Winkelfunktionen geben falsche Werte zurück
BeitragVerfasst: 31.03.2010 23:21 
Offline
Benutzeravatar

Registriert: 17.05.2009 18:55
Wohnort: Saarland
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.

_________________
Windows 7 Ultimate 64 Bit / AMD Phenom II 1090T, 6x3200 MHz / AMD HD-6850 / PureBasic 5.1 (x86) (x64)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Winkelfunktionen geben falsche Werte zurück
BeitragVerfasst: 31.03.2010 23:32 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Ja, ist doch richtig !

Wäre mir neu, wenn Sin oder Cos auf einmal linear wären :lol:

Sin und Cos nehmen immer noch das Bogenmaß als Parameter !

und (#PI/180*50) ist ein völlig anderer Winkel als (#PI/180)

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 13 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  
cron

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye