JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=fc19d4fab898a438bd06b7f1c15047d6Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

sin / cos stimmt nicht

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
peterbub
JLI'ler



Anmeldedatum: 24.07.2005
Beiträge: 109

Medaillen: Keine

BeitragVerfasst am: 15.12.2005, 21:38    Titel: sin / cos stimmt nicht Antworten mit Zitat

Hallo,

ich würde gerne eine Formel basteln
und brauche dazu die

sin / cos Funktionen.

ich benutze:
Code:

std::cout << cos(0.0) << std::endl;;
std::cout << cos(90.0) << std::endl;;   
std::cout << cos(180.0) << std::endl;;
std::cout << cos(270.0) << std::endl;;
std::cout << cos(360.0) << std::endl << std::endl;;;


und für Patrik Wink
Code:

std::cout << deg2rad(180.0) << std::endl;
std::cout << rad2deg(180.0) << std::endl;




und bekomme das als Ergebnis:

-0.44
-0.59
0.98
-0.28

und für Patrik:
3.14
und
10313

Jeder, der einen Taschenrechner hat und

von cos 180 , bekommt -1.

was stimmt bei mir nicht Sad

Gruß Peterbub
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
GreveN
JLI Master


Alter: 37
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 15.12.2005, 21:45    Titel: Antworten mit Zitat

Ja, dann stell deinen Rechner mal auf Bogenmaß um und vergleich die Ergebnisse. Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
PeaceKiller
JLI Master


Alter: 35
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 15.12.2005, 21:50    Titel: Antworten mit Zitat

Du solltest die C++-Funktionen std::sin etc. nehmen.
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
peterbub
JLI'ler



Anmeldedatum: 24.07.2005
Beiträge: 109

Medaillen: Keine

BeitragVerfasst am: 15.12.2005, 22:10    Titel: Antworten mit Zitat

da kommt bei mir leider das selbe raus.

Ich bin kein grosser mathematiker, kann mir jemand sagen , wie ich
aus:

cos(180) , -1 als Ergebnis bekomme ?

oder irgend wie aus 180 die zahl -1 bekomme?

Bitte nicht antworten mit 180 * (-1.0/180.0) Wink

Gruß peterbub
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
David
Super JLI'ler


Alter: 39
Anmeldedatum: 13.10.2005
Beiträge: 315

Medaillen: Keine

BeitragVerfasst am: 15.12.2005, 22:35    Titel: Antworten mit Zitat

Hi!

Du musst den Winkel ins Bogenmaß umrechnen:

Code:

winkel * pi / 180


Also:

CPP:
cout << cosf( deg2rad( 180.f ) ) << "\n";


grüße
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dragon
Super JLI'ler


Alter: 38
Anmeldedatum: 24.05.2004
Beiträge: 340
Wohnort: Sachsen
Medaillen: Keine

BeitragVerfasst am: 15.12.2005, 22:35    Titel: Antworten mit Zitat

peterbub hat Folgendes geschrieben:
da kommt bei mir leider das selbe raus.

Ich bin kein grosser mathematiker, kann mir jemand sagen , wie ich
aus:

cos(180) , -1 als Ergebnis bekomme ?

oder irgend wie aus 180 die zahl -1 bekomme?

Bitte nicht antworten mit 180 * (-1.0/180.0) Wink

Gruß peterbub


cos(180.0f * (2.0f*PI) / 360.0f);
da sollte -1 rauskommen. Wenn du es nicht verstehst solltest du mal in dein Tafelwerk unter Einheitskreis nachschauen oder in deinen Mathe-Hefter schauen. Ich glaube sowas macht man in der 8 oder 9. Klasse ^^
_________________
Nur wenn man ein Ziel sieht, kann man es auch treffen.
___________
Mein Leben, Freunde und die Spieleentwicklung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
David
Super JLI'ler


Alter: 39
Anmeldedatum: 13.10.2005
Beiträge: 315

Medaillen: Keine

BeitragVerfasst am: 15.12.2005, 22:41    Titel: Antworten mit Zitat

Hi!

Es reicht wenn man PI durch 180 teilt! Wink

CPP:
const float PI = 3.14159265358979323846f;

//...

std::cout << std::cos( 180.f * PI / 180.f ) << "\n";


grüße
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 16.12.2005, 09:20    Titel: Re: sin / cos stimmt nicht Antworten mit Zitat

peterbub hat Folgendes geschrieben:

ich benutze:
Code:

std::cout << cos(0.0) << std::endl;;
std::cout << cos(90.0) << std::endl;;   
std::cout << cos(180.0) << std::endl;;
std::cout << cos(270.0) << std::endl;;
std::cout << cos(360.0) << std::endl << std::endl;;;


[...]

und bekomme das als Ergebnis:

-0.44
-0.59
0.98
-0.28


wieso bekommst du bei 5 cout's nur 4 Werte? Wahrscheinlich hast du cos(0) weggelassen. Egal, das Problem ist, wie auch schon viele gesagt haben, dass du deine Grad-Werte(90.0f, 180.f ...) ins mathematische Winkelmaß, genauer gesagt das Bogenmaß umrechnen musst. Das bekommst du, wenn du dein 180° / PI * deinem Gradwert rechnest. Das alles in deinen Code umgesetzt, würde dann so aussehen:
CPP:
float radWinkel = 180 / 3.14159 * degWinkel; // winkel im Bogenmaß

std::cout << cosf(radWinkel) << std::endl;


nehmen wir an, du hast als degWinkel 180° genommen, dann bekommst du auch als cout -1 Wink

BTW: Wenn du bei Patricks templates sowas wie 57.29577951... * Winkel siehst, um etwas ins Bogenmaß umzurechnen, ist das eigentlich genau das selbe, denn 180° / PI = 57.29577951... Des Wert drekt so zu bilden, is eben besser, da das eine unnötige Division spart; das wiesderum spart viel zeit Wink

Gruß DirectXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 16.12.2005, 09:26    Titel: Antworten mit Zitat

peterbub
Dein Taschenrechner steht auf Grad, der PC rechnet in Bogenmaß
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum