Wie funktioniert Matrix.postScale (sx, sy, px, py)?

Lesen Sie zuerst Taigs Frage

Taig sagte:

Wenn Matrix.postScale (sx, sy, px, py) aufgerufen wird; Die Matrix wird skaliert und auch übersetzt (abhängig von den gegebenen Punkten x, y). Das prädestiniert diese Methode für das Zoomen von Bildern, da ich leicht einen bestimmten Punkt fokussieren kann. Das Android-Dokument beschreibt die Methode folgendermaßen:

Postconcats the matrix with the specified scale. M' = S(sx, sy, px, py) * M

uf den ersten Blick erscheint dies lächerlich, weil M eine 3x3-Matrix sein soll. Beim Stöbern habe ich herausgefunden, dass Android eine 4x4-Matrix für seine Berechnungen verwendet (während es nur 3x3 auf seiner API bereitstellt). Da dieser Code in C geschrieben ist, fällt es mir schwer zu verstehen, was tatsächlich passiert.

Ich sah die visuelle Transformation beiWolfra

Meine Frage ist die gleiche wie Taig

Was möchte ich eigentlich wissen: Wie kann ich diese Art der Skalierung (mit einem fokussierten Punkt) auf die 3x3-Matrix anwenden, auf die ich in meinem Java-Code zugreifen kann?

Wer kann mir ein Beispiel und eine 2D-Skalierungsformel mit 4 Parametern (sx, sy, px, py) geben, die ein 10-jähriges Kind verstehen würde?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage