mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-23 19:20:51 +00:00
alternative way of obtaining rotation matrix
This commit is contained in:
parent
27b69f0643
commit
eace711393
@ -144,14 +144,21 @@ void getRotationMatrixFromVectors(float vin[3], float vout[3], float matrix[4][4
|
||||
dotprod += vin[i]*vout[i];
|
||||
}
|
||||
|
||||
q[0] = sqrt(vin_length * vout_length) + dotprod;
|
||||
q[1] = -1*(vin[1]*vout[2] - vin[2]*vout[1]);
|
||||
q[2] = -1*(vin[2]*vout[0] - vin[0]*vout[2]);
|
||||
q[3] = 0;//-1*(vin[0]*vout[1] - vin[1]*vout[0]);
|
||||
//q[0] = sqrt(vin_length * vout_length) + dotprod;
|
||||
|
||||
float axis[3] = {0,0,0};
|
||||
a[0] = -1*(vin[1]*vout[2] - vin[2]*vout[1]);
|
||||
a[1] = -1*(vin[2]*vout[0] - vin[0]*vout[2]);
|
||||
a[2] = -1*(vin[0]*vout[1] - vin[1]*vout[0]);
|
||||
normalizeVector(axis,3);
|
||||
|
||||
float angle = acos(vin[0]*vout[0]+vin[1]*vout[1]+vin[2]*vout[2]);
|
||||
|
||||
quaternionFromAxis(angle, axis[3], q);
|
||||
normalizeVector(q,4);
|
||||
|
||||
getRotationMatrixFromQuartenion(q,matrix);
|
||||
|
||||
}
|
||||
|
||||
float getRotationAngle(float matrix[4][4]){
|
||||
|
Loading…
x
Reference in New Issue
Block a user