function v_rot = ruota_vettore(v, n, theta)
    % Ruota il vettore v di theta radianti attorno all'asse n
    % usando la formula di Rodrigues
    %
    % INPUT:
    %   v     - vettore da ruotare [3x1 o 1x3]
    %   n     - normale al piano (asse di rotazione) [3x1 o 1x3]
    %   theta - angolo di rotazione in gradi
    %
    % OUTPUT:
    %   v_rot - vettore ruotato
    theta = theta*pi/180;
    n = n / norm(n);  % normalizza l'asse
    
    v_rot = v * cos(theta) + cross(n, v) * sin(theta) + n * dot(n, v) * (1 - cos(theta));
end