Al momento, stai seguendo questo contributo
- Vedrai gli aggiornamenti nel tuo feed del contenuto seguito
- Potresti ricevere delle email a seconda delle tue preferenze per le comunicazioni
Suppose you have a unit vector described by f = [ai bj ck] and you would like to rotate f such that its result is t = [di ej fk]. This routine will find R(f,t) such that R(f,t)*f’ = t’. Where R(f,t) is known as the 3 x 3 transformation matrix needed to rotate f into t.
This MATLAB routine was based on a published article titled “Efficiently Building a Matrix to Rotate One Vector to Another” written by Tomas Moller and John Hughes in 1999.
This method features no square roots or trigonometric function calls and is reported to be faster than any other vector rotation matrix method tested by Moller and Hughes. In fact, the Goldman method (fastest method tested) was 50% slower than this routine in conversion speed tests.
Working Example:
Unit Vector f:
>> f = rand(1,3);
>> f = f./norm(f);
Unit Vector t:
>> t = rand(1,3);
>> t = t./norm(t);
The transformation matrix R(f,t) is found:
>> R = vecRotMat(f,t);
Now, test that R*f’= t’
>> R*f’
Cita come
Darin Koblick (2026). Efficient Vector Rotation Matrix Routine (https://it.mathworks.com/matlabcentral/fileexchange/37597-efficient-vector-rotation-matrix-routine), MATLAB Central File Exchange. Recuperato .
Riconoscimenti
Ispirato: rotVecAroundArbAxis(unitVec2Rotate,rotationAxisUnitVec,theta)
Informazioni generali
- Versione 1.1.0.0 (33,5 KB)
Compatibilità della release di MATLAB
- Compatibile con qualsiasi release
Compatibilità della piattaforma
- Windows
- macOS
- Linux
