Quads: ein Bild zerlegen und die einzelnen Teile verzerren

Director hat alles an Bord, um Bilder in beliebige Stückchen zu zerlegen und mit diesen alle möglichen kleinen Kunststückchen aufzuführen.


Zur Sache:

InitWarpler
Nach dem Setzen der nötigen Variablen wird die Verzerrungsliste gemacht: statt unguter Formeln werden einfach die Rot-Werte eines Farbverlaufes ausgelesen und in eine Liste geschrieben. Das sorgt später für schnelleren Zugriff.

Danach werden die Slices gemacht und in die temporäre CastLib gelegt.

PiecesRechnenInit
Die Positionen der Ecken werden in eine Liste geschrieben. Das hat den Vorteil, dass Verzerrungen überlagert werden können. Hier haben die Positionen einfache Werte.

PiecesRechnen
Hier wird zentral für jedes Teilbild die Verzerrung berechnet und angewendet. Wichtig: Die Bilder sind etwas größer als sie sein sollten, damit keine "Blitzer" entstehen. Gegen den Rand hin wird die Verzerrung reduziert, bei Mausklick wird sie verstärkt.

Funktion Verzerrung
Abhängig von der Entfernung zur Maus wird die neue Position jeder Ecke berechnet und zurückgegeben.

Das ist hier natürlich nur eine Variante von vielen. Die Funktion kann so verändert werden, dass der Effekt umgekehrt ist, also die Umgebung der Maus größer wird.

Was man besser machen könnte:
Eigentlich ist es nicht nötig, jedes Mal alle Quads neu zu berechnen. Es ändern sich nur die, die innerhalb des Mindestradius sind. Bei größeren Flächen würde diese Geschwindigkeitssteigerung stark zum Tragen kommen.