Stephan,
die Sache wird wahrscheinlich komplexer als ich mir im Moment vorstelle.
Dabei spielen zwei Überraschungen eine Rolle.
Hinsichtlich der Spiegelung könnte eine Unterscheidung zur Setzung des Ankerpunkts rechts oben etwa so aussehen:
Spontan habe mich die beiden Spiegelungswerte "Flip.HORIZONTAL_AND_VERTICAL" und "Flip.BOTH" überrascht.
Ist das nicht dasselbe.
Dies habe ich mit folgenden Befehlen, die ich im Wechsel auskommentiert habe, geprüft:
Das Ergebnis war dasselbe.
Zweite Überraschung:
Spiegle ich in der Transformieren-Palette einmal horizontal und vertikal, wird dies vom Skript weder als "Flip.HORIZONTAL_AND_VERTICAL" und "Flip.BOTH" erkannt, sondern als "Flip.NONE".
Hmm.
Selbst wenn ich diese Doppelspiegelung per Skriptbefehl ausführe (s.o., einmal mit "Flip.HORIZONTAL_AND_VERTICAL" und "Flip.BOTH"), erkennt das Skript diese nicht als Doppelspiegelung, sondern als "Flip.NONE".
Das Skript zum Ankersetzen setzt den Anker deswegen auch ins gegenüberliegende Eck.
Das legt einen bestimmten Schluß nahe.
Und wie dieses Problem zu umgehen wäre, dazu fällt mir im Moment nur kein Weg ein.
Denn nach "Flip.HORIZONTAL_AND_VERTICAL" und "Flip.BOTH" stellt der Wert Flip.NONE" das Bild nicht mehr in die Ursprungsposition.
Es kommt mir so vor, als verwechsle die Skriptengine hier (bei horizontal_and_vertical und both) flip als Eigenschaft mit einer Methode: spiegele!
flip ist aber als Eigenschaft eingeführt.
Das zeigt etwa
Wenn ich diesen Befehl wiederholt ausführte, dann bleibt das Bild erwartungsgemäß horizontal gespiegel stehen
Wenn ich hingegen
ausführe, dann springt die Anzeige mit jedem Aufruf.
Spiegelung both und gleich darauf none bewirkt keine Rückstellung der Spiegelung:
Bei Deinem Skript hättest Du nicht nur mit der Mathematik zu kämpfen, sondern auch mit diese Überraschungen.
Ich lasse mich bei meinen Schlüssen liebend gerne korrigieren und verstehe die o.g. Untersuchung aus Aufforderung, das selber nachzustellen und zu testen und mich bitte zu widerlegen.