Matrice di Roto-Traslazione

El_Merendero
Salve a tutti,
io devo fare, per una piccolo compito in Python, un lavoro con delle matrici di roto-traslazione. Essenzialmente il problema è questo: ho un sistema di riferimento O1 = {x,y,z} sul quale ci sono due punti A = {a1,a2,a3} e B = {b1.b2.b3}. Devo creare una matrice di roto-traslazione in modo da passare da O1 ad un nuovo sistema di riferimento O2 = {X,Y,Z} con origine in A e asse delle X lungo la retta passante per AB.

Stavo pensando di risolvere la questione mettendo assieme una rotazione attorno a z, una rotazione attorno a y ed una traslazione.

P2 = Rz * Ry * T * P1

Dove Rz e Ry sono queste (nell'immagine non sono usate le coordinate omogenee ma comunque il succo è quello)



Diciamo che se il problema richiedesse una sola rotazione e la traslazione... tutto funzionerebbe. Però quando devo mettere assieme le due rotazioni mi sballa il calcolo. L'errore, almeno credo, è che la seconda rotazione la faccio basandomi non sul sistema ruotato ma sul sistema originario O1. Però non so come sistemare questa cosa. Qualche consiglio? Come devo calcolare gli angoli?

Risposte
billyballo2123
Per comporre due rotazioni devi moltiplicare tra loro le due matrici (nella moltiplicazione delle matrici scrivi prima la seconda rotazione e poi la prima rotazione). Applicare separatamente le matrici al sistema di riferimento non serve a niente :D

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.