Salve ragazzi lo so che qui si mastica meglio il C ma ho uno stramaledetto problema con un progetto di biomeccanica!!! Non so se vuoi usate matlab o similari ma forse il mio più che un problema di sintassi è un problema di concetto!!! ora posto la parte di programma che mi sta facendo diventare scemo!!!
Codice: Seleziona tutto
lasi2rasi=diff(pelvis(:,:,[1,2]),1,3)
opl_0=point2line(pelvis(:,:,1),pelvis(:,:,2),sacr);
xpl_0=opl_0-sacr;
[temp,xpl_0]=mvarray(xpl_0);
ypl_0=cross(lasi2rasi,xpl_0);
[temp,ypl_0]=mvarray(ypl_0); %rende ypl_0 di modulo unitario
zpl_0=cross(xpl_0,ypl_0);
[temp,zpl_0]=mvarray(zpl_0);
R0pl=cat(3,xpl_0,ypl_0,zpl_0);
R0pl=permute(R0pl,[2,3,1]);
T0pl=[R0pl permute(opl_0,[2,3,1])]
T0pl(4,4,:)=1;
allora questa parte di codice dice che opl_0 è il centro del bacino calcolato attraverso un vettore che proietta un punto sull'osso sacro (più o meno) su un segmento che si trova tra due marker posti anteriormente al bacino (uno a destra ed uno a sinistra). Questa è l'origne del sistema di riferimento visto da una telecamera. xpl_0 ypl_0 e zpl_0 sono i versori del sistema di riferimento della telecamera. R0pl è la matrice di rotazione e T0pl è la matrice di rototraslazione
il numero di zeri è pari al numero di elementi sull'ultima riga meno l'ultimo che è 1. Ora devo invertire la matrice T0pl in Tpl0 sioè devo passare dal sistema di riferimento della telecamera al sistema di riferimento del bacino!!! Questa operazione si fa algebricamente come
il mio problema è che non posso trasporre semplicemte la matrice T0pl ma devo trovare una strada alternativa proprio come ho fatto per la sua costruzione. Questo è una problema di trasformazioni omogenee molto usato in robotica...ma io di robotica ne so un po' pochina...
Se vi serve mi vetto a disposizione tutto il codice del "programma"..grazie