function q=qrot(v,fi,varargin)
% funkcja tworząca kwaternion obrotu na podstawie wektora osi obrotu oraz
% kąta obrotu fi
f=fi/2; % kąt obrotu
v=v/norm(v);
s=cosd(f); x=v(1)*sind(f); y=v(2)*sind(f); z=v(3)*sind(f);
q(1,1:4)=[s; x; y; z]; % kwaternion

% Jeśli trzecim argumentem funkcji będzie string 'matrix', kwaternion
% zostanie zwrócony w postaci macierzowej.
if nargin==3
    if strcmp(varargin{1},'matrix')
        q(2:4,1:4)=[-x s -z y;
                    -y z s -x;
                    -z -y x s];
    end
end

