Spiegeln, die einen Winkel horizontal

Ich will wissen, einen Weg, um flip-Winkel in einer horizontalen Achse, die zimmerreserviereung, ohne das zu tun, viele Operationen. Sagen, ich haben einen Winkel von 0 ("nach rechts" in meinem code Koordinatensystem), der gedrehte Winkel sollte 180 (zeigt nach Links). Wenn 90 (oben), umgedreht sollte es noch 90. 89 91, und so weiter.
Ich kann auf die X/Y-Geschwindigkeiten impliziert durch den Winkel, aber das würde die Dinge verlangsamen, und ich glaube, es ist auch nicht der richtige Weg zu gehen.
Ich weiß nicht viel Mathe, so dass ich sein könnte, ruft die Dinge durch den falschen Namen...Kann jemand helfen?

EDIT: Sorry, ich nahm lang, ich musste aus dem computer für lange, OK...
http://img215.imageshack.us/img215/8095/screenshot031v.jpg

Dieser screenshot machen könnte.Die oben genannten Struktur sind zwei Satelliten und einem Balken verbunden, um den weißen Punkt in der Mitte. Die zwei Satelliten sollten Erben der Winkel der weiße Punkt (es ist sichtbar für debug-Zwecke), wenn es also das Ziel in einem Winkel, Sie werden Folgen. Die Satelliten auf der linken Seite ist gespiegelt, ich rechnete also mit 180-Winkel, wie vorgeschlagen, obwohl es war mein Erster Versuch als gut. Wie Sie sehen können, es ist nicht gespiegelt, sondern Umgekehrt. Und wenn der weiße Punkt dreht sich, es dreht sich rückwärts. Die andere aber in Ordnung.

Dies ist der Winkel, Neuberechnung für etwas, verbunden, um etwas anderes, pid würden die Eltern, und die id der aktuellen. pin.ang ist der Winkel, offset kopiert, wenn das Objekt verknüpft ist, zu einem anderen, so dass es hält die position, wenn gedreht wird:

if(object[id].mirror)
    object[id].angle = 180 - (object[id].pin.ang + object[pid].angle);
else
    object[id].angle = object[id].pin.ang + object[pid].angle;

- Und dies ist die spezifische rotation Teil. OpenGL. die offx/y ist für Dinge gedreht, off-center, wie der Strahl über dort heraus zu kommen, es macht alles andere Recht.

glTranslatef(list[index[i]].x, list[index[i]].y, 0);
glRotatef(list[index[i]].angle, 0.0, 0.0, 1.0);
glTranslatef(list[index[i]].offx, -list[index[i]].offy, 0);

Die rotation scheint auch zu übersehen, wenn die Geschwindigkeit der rotation (eine Ganzzahl Hinzugefügt jede neu gezeichnet, um den aktuellen Winkel, positiv im Uhrzeigersinn drehen, wie in dieser nächsten:
http://img216.imageshack.us/img216/7/screenshot032ulr.jpg

Also ist es definitiv keine 180-Winkel, egal wie offensichtlich es wäre. Die spiegelung erfolgt, indem Sie einfach die Umkehrung der textur-Koordinaten, so dass es nicht beeinflussen Winkel. Ich fürchte, es könnte eine Macke auf der GL Drehung Sache.

Es klingt für mich, als wenn Sie wollen zu 'invertieren über eine VERTIKALE Achse'
Wollen Sie behandeln nach unten als 270 oder -90? Oder ist das nie passiert?
Gut, ich bin auch nicht sicher, was ich Tue, ich bin sorry für die schlechte Erklärung. Mein Ziel ist es, mit Kanonen auf ein Zeichen, und diejenigen, die Kanonen nach dem Zustand der Charakter, so Zielen Sie in die entgegengesetzte Richtung, basierend auf deren Winkel. Im Grunde vertauschen rechts und Links, so dass die Kanonen können Sie die mirror-flag. Wenn ich 180-Winkel beim drehen, werden Sie umgedreht, so eine Kanone nach unten-rechts wird das Ziel oben Links. Ich versuche, Sie unten-Links.
Wenn Sie 180+angle, wird es Ihnen genau die entgegengesetzte Richtung (zB: oben Links wird zu rechts unten). Wenn Sie 180-Winkel, dreht es von Links nach rechts (oder von rechts nach Links), ohne den up/down (zB: oben Links wird oben rechts).
Also, was ist es genau, dass Sie möchten, wollen Sie zu reflektieren, über die die Y-Achse? Da die Subtraktion der Winkel von 180 perfekt funktioniert, kann man nicht mehr klar auf die Winkel in deinem Beispiel, wo es nicht funktioniert. Für alles, was du sagst im ersten post, das subtrahieren von 180 Werken. Was könnte man tun, aber nur auf der x/y-Koordinaten ist, multiplizieren Sie die y-Koordinate um -1. Diese werden immer entsprechend Ihrer Koordinate über der y-Achse.

InformationsquelleAutor | 2009-09-03

Schreibe einen Kommentar