sin() und cos() - Differenzen zwischen BlitzBasic & C/C+
Übersicht

![]() |
maximilianBetreff: sin() und cos() - Differenzen zwischen BlitzBasic & C/C+ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
ich wollte hier eigentlich niemanden mit meinen C/C++-Fragen belästigen, aber ich bastle an einer Steuerung wie GTA in C mit Hilfe von Allegro und dem Mingw32-Compiler. Hierzu habe ich, weil ich in der 7. Klasse von Sinus und Cosinus noch überhaupt keine Ahnung habe, Ralliemen's Beispiel umgeschrieben. Dämlicherweise funktioniert die Steuerung nicht richtig. Heiurzu habe ich mal einen Test geamacht, und jetzt weiß ich nicht mehr weiter: BlitzBasic Cos(100) * 0.5 = -0.0868241 C/C++/Mingw32/math.h Cos(100) * 0.5 = -1083809825 Warum bloß? Wäre nett wnn mir einer helfen könnte. Grüße, LordChaos PS: Das hat auch ein bisschen was mit BB zu tun. ![]() |
||
![]() |
Wild-Storm |
![]() Antworten mit Zitat ![]() |
---|---|---|
oho, anscheinend ist bb hier im recht, aufm taschenrechner kommt da auch -0.086824088 raus | ||
Visit http://www.next-dimension.org
------------------------------------------------- Freeware Modelle, Texturen & Sounds: http://www.blitzforum.de/forum...hp?t=12875 |
![]() |
MVB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Keine Ahnung wie das kommt. Das richtige Ergebniss ist auf jeden Fall das von BB. Denn Cos darf nur werte von -1 bis 1 zurückgeben, und wenn man das dann noch halbiert kann auf gar keinen Fall -1083809825. mein taschenrechner sagt auch "-0.0868241. | ||
aquamonit.de|BlitzMax|MaxGUI |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
ähm, hast du vielleicht das mit einen int und keinen float gemacht?
integer sehen so aus: -1083809825 |
||
between angels and insects |
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
In C++ gäbs da nen Fehler, in C weiß ich nicht, kann mir vorstellen dass das da funktioniert ![]() |
||
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bogenmaß in C++ ?! | ||
![]() |
Blatolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist echt komisch.
Hab es gerade ausprobiert. Code: [AUSKLAPPEN] #include <iostream.h>
#include <math.h> int main() { double ergebnis; ergebnis=cos(100)*0.5; cout<<ergebnis; return 0; } Bei mir kommt da 0.431159 raus. Dabei müsste es eigentlich -0.86824088 sein. Kenne mich in C++ leider nicht gut genug aus um zu wissen woran das liegen könnte. |
||
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Argh, ich hab folgendes geschrieben:
Code: [AUSKLAPPEN] printf("%d", cos(100) * 0.5); Aber auch wenn ich "%f" schreibe, kommt folgendes raus: 4.31159 Grüße, LordChaos @Vertex: Hm, ich verstehe dein Post nicht ganz richtig. Von Bogenmaß hab ich natürlich auch keine Ahnung. /edit: Sorry, Blatolo hat so gepostet, das ich es nicht mehr gesehen habe. Warten wir mal auf ST oder so. Der wird es uns vielleicht erklären können, |
||
![]() |
Wild-Storm |
![]() Antworten mit Zitat ![]() |
---|---|---|
ohne das * 0.5 kommt bei c++ 0.86231 (oder so) raus und eim rechner -0.1736 | ||
Visit http://www.next-dimension.org
------------------------------------------------- Freeware Modelle, Texturen & Sounds: http://www.blitzforum.de/forum...hp?t=12875 |
![]() |
BigSnake |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein Blick in die Hilfe würde euch zeigen, daß C++ Bogenmaß verwendet und somit das Ergebnis vollkommen korrekt ist | ||
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Na schön. Dann ist das ja aus der Welt geschafft. Könnte aber jetzt einer von euch einem Mathe-n00b erklären, wie ich trotzdem meine richtigen Werte bekomme?
Grüße, LordChaos |
||
Black |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Und der Unterschied von %d zu %f ist damit zu erklären, dass ein float nur 4 Byte benutzt während ein double 8 Byte groß ist.
Dh. wenn du %f angibst werden die ersten 4 Bytes als float interpretiert und der Rest ignoriert. |
||
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es ging hier eigentlich um die Umrechnung von Bogenmaß in Cosinus und Sinus-Werte.
Ich weiß schon, das &d nur Integer-Zahlen sind. *schmoll* Grüße, LordChaos |
||
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Blitz arbeitet mit Gradmaß (also wird der Winkel in Grad -> ° angegeben)
math.h arbeitet mit Bogenmaß. 1 Pi ist im Gradmaß 180° und im Bogenmaß 1. Somit sind 2 Pi gleich 360° oder 2 im Bogenmaß. Umrechnung: Bogenmaß = Gradmaß / 180 Wenn ich dir mal da smit Sin und COs erklähren soll, musste mir mal ne PM schreiben, könnte am Donerstag für dich Zeit haben. mfg olli |
||
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
ARGH! Jetzt weiß ich auch, warum diese dämliche Bild-Rotation nicht geklappt hat (360 Einzelbilder). Aber danke. Ich glaube ich brauche nicht mehr Mathe für mein Projekt, aber das ist trotzdem nett von dir. Bald haben wirs ja auch in der Schule. ![]() Grüße, LordChaos |
||
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
VERSCHOBEN nach Allgemein. | ||
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mit dem "bald" würde ich vorsichtig sein.
Wir hatten das erst in der 9. Klasse und soweit ich weiß, bist du in der siebten. Somit müsstest du dich noch auf ein etwas längeres bald beziehen. Aber im Grunde ist das mehr als einfach zu verstehen. Ps: Was zu Geier ist Allegro? Ich habe schon ne Menge davon gehört, nur erklärt hat es mir nie einer... Ich bin eher der Basic/Ruby-Typ, von C/C++ habe ich noch keine Ahnung... |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Allegro ist ein Paket nützlicher Funktionen etc. zur Gameentwicklung unter C/C++. Enthält Routinen für sprites, sound ,grafikinitialisierung etc. und ist freeware (open source (?)).
Quasi das rüstzeug um sich unbeschwert mit den Gamemechanismen zu beschäftigen ohne von den "Basics" abgelenkt zu werden. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaube man Grad zu Bodenmaß so umrechnen (für C)
VB6 benutzt auch Bogenmaß . ? pi/180 oder 22/7/180 r=1.74603174603175E-02 x=cos(winkel*r) |
||
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Achso, dies ist Allegro! abe mich schon gewundert, warum
LordChaos jetzt plötzlich von Rotation redet. Denn DirectX zu aktivieren ist für ihn (sorry) doch eine Nummer zu groß. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group