Angular and linear velocity, cross product

This page explains how to use the cross product to convert linear velocity to angular velocity (or the reverse).

From linear to angular

Let's consider the body C, rotating around the point O. The linear speed of point A is given by \( \vec{V} \).

Convert linear velocity to angulard velocity

The angular velocity around O is given by :

$$ \vec{\omega} = \frac {\vec{OA} \times \vec{V}} { \| \vec{OA} \| ^2 } $$

From angular to linear

Assuming the angular velocity is known, the linear speed at point A is given by:

$$ \vec{V} = \vec{\omega} \times \vec{OA} $$

Example

Matlab example of conversion from angular velocity to linear velocity thanks to the cross product

The following Matlab code shows how to convert linear velocity to angular velocity and vice-versa:

close all;
clear all;
clc;

%% Parameters

% Coordinates of point O
O=[0;0;0];
% Coordinates of point A
A=[1;2;0];
% Coordinates of point B
B=[2;1;0];

% Speed applied at point A
VA=[0;2;0];

%% Compute angular velocity

% Compute vector OA
vOA=A-O;
% Compute angular speed around point A
wO=cross (vOA,VA)/(norm(vOA)*norm(vOA));

%% Compute linear speed at point B

vOB=B-O;
VB=cross(wO,vOB);

%% Draw system

plot3(O(1),O(2),O(3));
hold on;
line ([O(1) A(1)],[O(2) A(2)],[O(3) A(3)]);
line ([O(1) B(1)],[O(2) B(2)],[O(3) B(3)]);
text(O(1)+0.2,O(2)+0.2,O(3)+0.2,'O','FontSize',100);
text(A(1)+0.2,A(2)+0.2,A(3)+0.2,'A','FontSize',100);
text(B(1)+0.2,B(2)+0.2,B(3)+0.2,'B','FontSize',100);

% Draw speed at point A
hFA=quiver3 (A(1),A(2),A(3),VA(1),VA(2),VA(3),'Color','k','LineWidth',3,'MaxHeadSize',1.5);

% Draw speed at point O
hTO=quiver3 (O(1),O(2),O(3),wO(1),wO(2),wO(3),'Color','g','LineWidth',3,'MaxHeadSize',1.5);

% Draw speed at point B
hFB=quiver3 (B(1),B(2),B(3),VB(1),VB(2),VB(3),'Color','r','LineWidth',3,'MaxHeadSize',1.5);

% Display axis and legends
grid on;
axis square equal;
xlabel('X');
ylabel('Y');
zlabel('Z');
legend ([hFA,hTO,hFB],'Linear speed at point A','Angular velocity a point O','Linear speed at point B');

See also


Last update : 02/04/2020