2009-08-21 7 views
1

Ich würde gerne die entsprechenden Grafik-Transformationen kennen ..in Erstellen eines spiegelnden Effekts einer Komponente über die x-z-Ebene. Es muss nur mit 2d durchgeführt werden, da das Swing-Toolkit nur 2d-affine Transformationen unterstützt.Spiegeln einer GUI-Komponente in der x-z-Ebene

http://www.verysimple.com/flex/flipcard/ .... ist ein Beispiel für den zu erzielenden Effekt.

+0

Ihre Frage ist nicht sehr klar (zumindest für mich). Warum sollten Sie eine 3D-Transformation (die Ihre Verwendung der Z-Koordinate impliziert) mit nur 2D-Transformationen durchführen können? Können Sie ein konkretes Beispiel dafür geben, wie die Transformation funktionieren sollte? –

+0

Auch X-Z-Ebene ist nicht sehr klar. Sie werden hier und da oft anders benannt. Welches Flugzeug ist was? – Thorarin

Antwort

2

Nicht um ein echtes 3-D-Flipping aber die Wirkung sehr ähnlich sieht, wenn man nur tun, 2-D-Skalierung wie diese,

  1. das vordere Bild rendern.
  2. Maßstab X von 1 bis 0, in der Mitte verankert.
  3. Rendern Sie das hintere Bild.
  4. Maßstab X von 0 bis 1, in der Mitte verankert.

Um eine konstante Winkelgeschwindigkeit, der Skalierungsfaktor zu simulieren kann wie folgt berechnet werden

double scale = Math.cos(i*Math.PI/(2.0*steps)); 

Die i Schrittzahl ist und steps ist die Gesamtanzahl von Schritten eine 90-Grad-Drehung simulieren müssen.

Sie können auch eine Schertransformation einführen, um die Perspektive einer echten 3D-Rotation zu simulieren, aber der Effekt ist für ein schnelles Spiegeln nicht so auffällig.