Fehlerhafte Mathebibliothek?
-
Hallo Zusammen.
Für meine FPS-Kamera brauche ich Cosinus und Sinus.
Tja nun,dazu habe ich natürlich "math.h" eingebunden.
Aber die Berechnungen von Cosinus und Sinus sind irgendwie glaube ich fehlerhaft.
Denn wenn ich 45(45 Grad) bei Cosinus angebe,gibt er mir irgendwas mit 0.5 zurück,obwohl dies eigentlich ungefähr 0.7 sein müsste.
Bei 90 gibt er mir -0.8 oder so zurück,denn dies müsste eigentlich 0 sein.
Und auch sonst liefert es mir falsche werte,genauso wie bei Sinus.Nun frage ich,ob ich etwas falsch mache,oder ob die Mathebibliothek fehlerhaft oder beschädigt ist.
-
Die Funktionen arbeiten mit Radianten, nicht mit Grad.

-
bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß bogenmaß
Aber hauptsache einen FPS programmieren wollen. Lolwut
-
Ja,aber wie müsste ich es dann angeben.
Also z.B 45 Grad Kameredrehung.
-
-
cooky451 schrieb:
Umrechnen?
Oder gleich in Radianten denken.
-
cos(45rad) = 0,52...
Die verwendete Einheit ist Radiant und nicht Grad.
-
Danke,und auserdem habe ich auch noch keine Erfahrung mit Spieleprogrammierung.
-
coder++ schrieb:
Danke,und auserdem habe ich auch noch keine Erfahrung mit Spieleprogrammierung.
Dann fang mit Pong oder Tetris an und nicht mit einem FPS.
-
qweqwewqeqw schrieb:
coder++ schrieb:
Danke,und auserdem habe ich auch noch keine Erfahrung mit Spieleprogrammierung.
Dann fang mit Pong oder Tetris an und nicht mit einem FPS.
Pong als FPS

-
qweqwewqeqw schrieb:
Dann fang mit Pong oder Tetris an und nicht mit einem FPS.
Für 3D-Grafik brauchst du auch dringend Oberstufenmathematik, konkret: Lineare Algebra und Trigonometrie. Ist nicht viel, was man davon braucht, aber das was man braucht ist Pflichtwissen. Unter anderem zählt dazu auch, dass man schon einmal was von Radianten gehört hat und damit umzugehen weiß.
-
Danke vielmals für den Link.
Wollte nur noch mal sagen,dass ich jetzt eine Umrechnungsformel geschrieben habe.//Wenn Pfeiltaste(oben) gedrückt wird
PosX -= float(cos(Kamerahorizontal * ((2 * Pi) / 360)) / 50); //Kamerahorizontal ist die Drehung der Szene in Grad
PosZ -= float(sin(Kamerahorizontal * ((2 * Pi) / 360)) / 50);//Bewegung der Szene
KameraX = PosX;
KameraZ = -PosZ;
glTranslated(KameraX,KameraY,KameraZ); //KamerapositionIch dachte immer für Cosinus und Sinus muss man die Gradzahl angeben und nicht den Radiant.
Aber nun nach mehreren Tagen doch geschafft.
Alleine wäre ich nie darauf gekommen,dass man den Radiant angeben muss.
Deswegen nochmal danke für die Hilfe.
-
Was, das ist Oberstufenmathematik? Lol seit dem G8 wohl eher nicht mehr

-
coder++ schrieb:
Ich dachte immer für Cosinus und Sinus muss man die Gradzahl angeben und nicht den Radiant.
wie kommst Du darauf und in welche Klasse/Schule gehst Du?
Kennst Du die Entwicklung der trigonometrischen Funktionen durch Taylorreihen?
-
coder++ schrieb:
Danke vielmals für den Link.
Wollte nur noch mal sagen,dass ich jetzt eine Umrechnungsformel geschrieben habe.//Wenn Pfeiltaste(oben) gedrückt wird
PosX -= float(cos(Kamerahorizontal * ((2 * Pi) / 360)) / 50); //Kamerahorizontal ist die Drehung der Szene in Grad
PosZ -= float(sin(Kamerahorizontal * ((2 * Pi) / 360)) / 50);das ist nicht so dolle.
schreib dir ein schnuckeliges umrechnungs-makro.Werner_logoff schrieb:
coder++ schrieb:
Ich dachte immer für Cosinus und Sinus muss man die Gradzahl angeben und nicht den Radiant.
wie kommst Du darauf und in welche Klasse/Schule gehst Du?
in manchen schulen ist das so. realschulen z.b.
-
fehl0r schrieb:
Werner_logoff schrieb:
coder++ schrieb:
Ich dachte immer für Cosinus und Sinus muss man die Gradzahl angeben und nicht den Radiant.
wie kommst Du darauf und in welche Klasse/Schule gehst Du?
in manchen schulen ist das so. realschulen z.b.
diese Diskussion ist nicht zielführend. Beides sind gängige Varianten in Europa. Wichtig zu klären ist: In praktisch allen Programmiersprachen wird das Bogenmaß verwendet.
-
Freddy_Kay schrieb:
diese Diskussion ist nicht zielführend. Beides sind gängige Varianten in Europa. Wichtig zu klären ist: In praktisch allen Programmiersprachen wird das Bogenmaß verwendet.
Das hat nichts mit Europa zu tun. Das eine ist eben in der Mathematik üblich (mit guten Gründen!), das andere historisch von den alten Babyloniern weltweit für einfache Geometrie übernommen (aus praktischen Gründen, daher noch immer verbreitet, aber ansonsten willkürlich gewählt). In einer Mathematikbibliothek wird natürlich die mathematische Ausdrucksweise benutzt.
Falls weiteres Interesse an dieser Offtopicdiskussion besteht, werde ich sie abtrennen. Sonst bitte zurück zum Thema.
-
Bin Gymnasium 8. Klasse
-
Gaube nicht, dass du wirklich ein Spiel entwickeln kannst. Dafür fehlt dir viel zu viel von den Grundlagen. Allerdings kann es motivierend sein, ein Ziel zu haben, auch wenn es unerreichbar ist. Deswegen kannst du ruhig ein FPS anfangen zu programmieren, denn solange man motiviert ist, lernt man am Besten, aber du musst immer daran denken, dass du wohl niemals fertig wirst.
Nimm übrigens nicht direkt OpenGL, das ist noch viel zu schwer. Probier mal die Irrlicht-Engine aus, die ist sehr einfach zu verwenden und man kann sehr viel und schnell lernen.
-
Danke für den Tipp,aber ich bleib lieber bei OpenGL.
-
coder++ schrieb:
Danke für den Tipp,aber ich bleib lieber bei OpenGL.
Das ist schon Ok.
Was Du auf jeden Fall benötigst, ist Vektor und Matrizenrechnung. Normalerweise wird das in der Oberstufe gelehrt. Aber so schwer ist das auch wieder nicht. Wenn Du konkrete Fragen hast, so frage einfach hier im Forum. Es schadet wirklich nicht, wenn Du Dich jetzt schon damit beschäftigst.
Und lass' Dich von Antworten wie 'das ist nicht so dolle' nicht abschrecken. Natürlich nicht, aber jeder hat mal klein angefangen.
Viel Erfolg dabei & Gruß
Werner