Processing math: 100%
Computergrafik

Transformationsbeispiel

Skalierung | | OpenGL Komponenten

Wir drücken die folgenden 2D Transformationen durch eine entsprechende homogene 3×3 Matrix aus:

  • Rotation R um 90 Grad entgegen dem Uhrzeigersinn
  • Translation T um den Vektor (1,0)T
R=(010100001)
T=(101010001)

Wir berechnen die zusammengesetzte affine Transformationsmatrix:

M=TR=
=(101010001)(010100001)
=(011100001)

Und abschließend transformieren wir den Punkt p=(2,0)T mit der zusammengesetzten Matrix M:

p=Mp

Wir überprüfen zeichnerisch, dass der resultierende Punkt p=(1,2)T ist (und nicht (0,3)T)!

Wir überprüfen das Ergebis programmiertechnisch mit GLM bzw. GLSLmath (für 4×4 Matrizen):

mat4 M = mat4::translate(1,0,0) * mat4::rotate(90, 0,0,1);
glslmath::print(M);

vec4 p(2,0,0,1);
vec4 pt = M*p;
glslmath::print(pt);

Live Demo

Skalierung | | OpenGL Komponenten

Options: