Wiedermal ein Yaw Problem...

10/12/2013 10:54 Crack-wtf#1
EDIT:
Kann geschlossen werden.


Ok habe ein neues Problem und ich kämpfe die ganze zeit über mit den casttypes etc. und komme am schluss einfach nicht dazu, das richtige ergebnis zu returnen.

Also.
Beim Spiel geht normalerweise yaw von -180 bis 180
Hier ist es anders.
Es geht beidseitig ins unendliche.
Also wenn ich mich z.B. von -180 weiter drehe, wird daraus nicht 179, sondern
-181.
Und das selbe in die andere richtung.

Jetzt habe ich schon diverses probiert.

PHP Code:
if(retn[1] > 180)
retn[1] = (float)((static_cast<int>(retn[1]) % 180) - 180);
else if(
retn[1] < -180)
retn[1] = (float)((static_cast<int>(retn[1]) % 180) + 180); 
Das schien erst zu funktionieren, aber dann habe ich gemerkt, dass sobald ich eine weitere umdrehung mache, er das negativ zeichen nicht richtig setzt.

Also aus -361 muss -1 werden, und aus z.B. 361 muss 1 werden.

Hoffe jemand von euch hat eine gute antwort parat.

Edit:
So sah mein erster versuch aus, der aber das gleiche Problem brachte.

PHP Code:
if(angles[1] > 180.0f)
angles[1] -= int(angles[1] / 180.0f) * 180.0f 180.0f;
else if(
angles[1] < -180.0f)
angles[1] -= int(angles[1] / -180.0f) * -180.0f + -180.0f
10/12/2013 13:17 MrSm!th#2
Code:
 
retn[1] %= 360;
if (retn[1] > 180)
    retn[1] = retn[1] % 180 - 180;
else if (retn[1] <= -180) // weiß jetzt nicht, ob du zwischen - 180 und 180 differenzieren willst; ggf zu < ändern 
    retn[1] = retn[1] % 180 + 180;