/ / Decomposizione di una matrice pivot trasformata: opengl, matematica, grafica, matrice, geometria

Scomposizione di una matrice pivot trasformata: opengl, matematica, grafica, matrice, geometria

Data una matrice pivot composta nel modo seguente:

  mat4w pivotedMat(true);
pivotedMat.translate(P);
pivotedMat *= pivotPos;
pivotedMat *= pivotRot;
pivotedMat *= R;
pivotedMat *= pivotRot.getInverse();
pivotedMat *= pivotPos.getInverse();
pivotedMat.scale(S);

Che viene poi tradotto e ruotato da un'altra matrice in modo tale che:

mat4w newMat = transformMat * pivotedMat;

È possibile scomporre la matrice (newMat) per recuperare i nuovi valori di P, R e S se tutti i valori che componevano la precedente matrice girevole sono noti?

risposte:

0 per risposta № 1

È possibile scomporre una matrice di trasformazione affine T in traduzione Pos e rotazione Rot matrici che utilizzano il seguente codice:

mat4 Rot;
mat4 Pos;
mat4 InvT = T.GetInversed();

for ( int i = 0 ; i < 3 ; i++ )
{
for ( int j = 0 ; j < 3 ; j++ )
{
Rot[i][j] = InvT[j][i];
}
}

Pos = Rot.GetInversed() * vec3( -InvT[3].x, -InvT[3].y, -InvT[3].z );