Parallelverschiebung mit nur einer Matrix

Gegeben sei der Punkt P mit P=(x,y)^T. Jetzt möchte ich P um v=(v_x,v_y)^T verschieben, sodass ich den Punkt P'=(x',y')^T erhalte.

Die Matrixform wäre also:

|x'| = |1 0| * |x| + |v_x|
|y'|   |0 1|   |y|   |v_y|

Wie kann ich + (v_x,v_y)^T in die Matrix reinziehen, sodass ich nur noch eine Matrixmultiplikation mit einem Vektor habe? Das will gerade nicht in meinen Kopf. :angry:

https://docs.oracle.com/javase/8/docs/api/java/awt/geom/AffineTransform.html

Hab vielen Dank. Mit einer 2x2 geht es nicht, jedoch mit einer erweiterten 3x3-Matrix schon!

image

Erweitern wir die dritte Spalte um die gewünschte Verschiebung (hier (tx,ty)), so können wir diese Matrix mit unserem erweiterten Punktvektor multiplizieren, und haben damit translatiert. :smiley:

Woher wusstest du das?

Irgendwas, was zwischen „Graphische Datenverarbeitung I (2002)“ und https://github.com/search?q=user%3Ajavagl+AffineTransform&type=code liegt.

Da hab ich noch in die Windeln gemacht. :face_with_hand_over_mouth:

Naja, nicht ganz, ich bin zum Jahreswechsel besoffen im Gartenteich gelandet, an mehr kann ich mich nicht mehr erinnern.