2016-04-08 8 views

Antwort

0

Eine Transformation nicht gekippt wird. Eine Ansicht ist umgedreht. Um dies zu tun, wird eine Transformation angewendet. Die Transformation dreht also die Ansicht um, sie wird nicht selbst umgedreht.

So können Sie die Transformation einer Ansicht lesen und prüfen, ob es sich um die Flip-Transformation handelt. (Eine Skalierungstransformation mit einem Skalierungsfaktor von 1 für die X-Achse und -1 für die Y-Achse.) Es ist jedoch möglich, dass viele Transformationen auf die Ansicht angewendet werden. Vielleicht bekommst du die "reine" Flip-Transformation nicht. Und am Ende des Tages hängt es davon ab, was Sie "umgedreht" nennen. Ist eine Drehung von 180 ° ein Flip? (Was ist Ihr wirkliches Problem?)

Allerdings ist der robusteste Weg zu überprüfen, dass die Transformation zu bekommen und einen Punkt zu transformieren scheint. Das Ergebnis gibt Ihnen einen Hinweis, was gemacht wird. Wenn sich das Vorzeichen der y-Koordinate ändert, aber der Wert der x-Koordinate konstant bleibt, sieht es wie eine Umkehrung aus. (Auf den ersten Blick.)

0

CGAffineTransform Eigenschaften, dass zu erkennen ist,

Wie ich schon sagte,

aTransformObj.a: stellt scale X

aTransformObj.b: stellt skew Y

aTransformObj.c: repräsentiert skew X

aTransformObj.d: stellt scale Y

aTransformObj.tx: stellt translate x

aTransformObj.ty: stellt translate Y

können Sie mit überprüfen, ob diese Werte negativ sind oder nicht, 1) .a Eigenschaftswert, wenn es more then 0 to any negative value ist dann es ist horizontal umgedreht. 2) .d Eigenschaftswert, wenn es more then 0 to any negative value ist, dann wird es vertikal umgedreht.

+0

Das stimmt nicht. Die "d" -Komponente ist einfach die [2,2] der Matrix. Dies ist -1 für eine Drehung von 180 ebenfalls. Wenn Sie eine Spiegelung und einen Zoom haben, ist .d nicht -1, sondern ein anderer negativer Wert. Wie in meiner Antwort erwähnt, ist diese Annahme nur dann richtig, wenn Sie keine weiteren Transformationen haben. –

+0

aber wir können mit negativem Wert prüfen! Wenn der Wert negativ ist, wird er umgedreht! scheint dir nicht richtig zu sein? – amorbytes

+0

glaube ich nicht, denn das kann immer noch eine Rotation oder ein Panning sein. Ich glaube nicht, dass Sie in einer Kette von Transformationen nach einer einzigen Transformation suchen können. Dies funktioniert nur, wenn Sie eine einfache Flip-Transformation haben. –