clear; clc;
%Punkty podlegające obrotom 3 punkty tworzące ostrosłup
P=[1;0;0];

v=[1/2;-1/2;1/2];  % wektor osi obrotu
q=qrot(v,120);      % kwtaernion obrotu
Q=Qmatrix(q); % macierz obrotu

P1=Q*P     % obrócony wektor /wektory P;



%% Rysowanie
% Ustawianie parametrów obrazu
figure(1); clf; scale=2; hold on;
view(-38,24);
set(gca,'XDir','reverse','YDir','reverse');
xlabel('x'); ylabel('y'); zlabel('z');
grid on;
box on;

% Rysowanei osi układu współrzędnych
axis manual;
axis([-1 1 -1 1 -1 1]*scale);
axis equal
line([0 0],[-1 1]*scale, [0 0],'LineWidth',1,'Color','k'); hold on;
line([-1 1]*scale,[0 0], [0 0],'LineWidth',1,'Color','k');
line([0 0], [0 0],[-1 1]*scale,'LineWidth',1,'Color','k'); 
line([0 v(1)/norm(v)],[0 v(2)/norm(v)],[0,v(3)/norm(v)]); % rysowanie osi obrotu

% Rysowanie powierzchni przed obrotem
fill3(P(1,:),P(2,:),P(3,:),'r','FaceAlpha',0.4); % Face Alpha - transparentość 40% 
% Rysowanie wierzchołków powierzchni przed obrotem
plot3(P(1,:),P(2,:),P(3,:),'ro','MarkerFaceColor','r')
pause(3) % Pauza 3 sekundy
% Rysowanie powierzchni po obrocie
fill3(P1(1,:),P1(2,:),P1(3,:),'b','FaceAlpha',0.4);
% Rysowanie wierzchołków powierzchni po obrocie
plot3(P1(1,:),P1(2,:),P1(3,:),'bd','MarkerFaceColor','b');
hold off;