function m = rotation_matrix(v) up = [ 0 0 1]; % arbitrary 'up' vector (in world coordinates) phi = v(1); theta = v(2); alpha = v(3); % not used here cosphi = cos(phi); vn = -[sin(phi) cosphi*cos(theta) cosphi*sin(theta)]; %vn = v(1:3); vz = vn/norm(vn); vx = cross(up,vz); vx = vx/norm(vx); vy = cross(vz,vx); m = [vx; vy; -vz;];