2010-11-23 8 views
0

Ich schreibe ein Album-Anzeige-Programm, das in der Lage ist, Fotos wie im 3D-Raum zu sehen. Das zugrunde liegende Grafik-Toolkit ist AntiGrain. Es implementiert einen trans_perspective Transformator, um 2D-Perspektiventransformation durchzuführen. Im Allgemeinen transformiert trans_perspektive 2D planar auf ein Quadrat "im Raum". Ich habe auch Methoden hinzugefügt, um die X/Y/Z-Achse zu drehen. Grundsätzlich möchte ich ein Bild in der perspektivischen Ansicht drehen. Zum Beispiel, in Qt "Svg Viewer" (doc.qt.nokia.com/4.1/painting-svgviewer.html), das rotierende Qt-Logo auf der Unterseite. Es dreht sich in einer perspektivischen Ansicht. Ich habe versucht, um die X-Achse zu drehen, um eine perspektivische Ansicht zu erhalten, aber ich kann nicht einfach die Drehung um andere Achsen verwenden, um das Bild in der perspektivischen Ansicht zu drehen, da das Koordinatensystem bereits geändert wurde.rotierendes Bild in perspektivischer Ansicht

+1

Sie müssen möglicherweise genauer sein, um bessere Antworten zu erhalten. – tenfour

+0

@tenfour: zum Beispiel in Qt "Svg Viewer" (http://doc.qt.nokia.com/4.1/painting-svgviewer.html), das rotierende Qt-Logo auf der Unterseite. Es dreht sich in einer perspektivischen Ansicht. – feverzsj

Antwort

1

Sie müssen das Objekt in den Ursprung übersetzen, die Drehung anwenden und das Objekt zurück an den ursprünglichen Punkt verschieben. Dies wird das Objekt um sein Zentrum drehen.

+0

gut, ich denke, das gilt nur für 2D-Fall (Drehen um Z-Achsen für den Fall). – feverzsj

+0

Es funktioniert für jede Drehung. Vielleicht bin ich bei Ihrem Problem nicht klar, aber die perspektivische Transformation wird nach allen anderen angewendet. – tkerwin