function Bezier(n) 
% Funkce pro demonstraci Bézierovy křivky pomocí algoritmu de Casteljau
% VSTUP: n - stupeň bézierovy křivky

close all; 
clc;
presnost = 100; 

X = sprintf('Vykresleni Bezierovy krivky %d. stupne', n);
disp(X)
prostor = input('v rovine nebo v prostoru [1 nebo 2]: ');

if prostor == 2 
    
% v prostoru
    figure(1); 
    hold on;
    title(['Bézierova křivka v prostoru stupně ',num2str(n)]); 
    t = linspace(0,1,presnost); 

    for i = 1:n + 1 
    % vstup
    polygon(i,:) = input('Zadejte souradnice bodu [x y z]: ');
 
    % prubezne vykresluje ridici polygon
    plot3(polygon(:,1),polygon(:,2),polygon(:,3),'k-','LineWidth',2); 
    plot3(polygon(:,1),polygon(:,2),polygon(:,3),'ro','MarkerSize',6,'MarkerFaceColor','r'); 
    end

    % vypocet a zobrazeni bezierovy krivky
    krivka = casteljau3(polygon,t); 
    plot3(krivka(:,1),krivka(:,2),krivka(:,3),'b-','LineWidth',3); 

else 
    
% v rovine
    figure(1); 
    hold on;
    title(['Bézierova křivka v rovině stupně ',num2str(n)]); 
    t = linspace(0,1,presnost); 

    for i = 1:n + 1 
    % vstup
    polygon(i,:) = input('Zadejte souradnice bodu [x y]: ');
 
    % prubezne vykresluje ridici polygon
    plot(polygon(:,1),polygon(:,2),'k-','LineWidth',2); 
    plot(polygon(:,1),polygon(:,2),'ro','MarkerSize',6,'MarkerFaceColor','r'); 
    end

    % vypocet a zobrazeni bezierovy krivky
    krivka = casteljau2(polygon,t); 
    plot(krivka(:,1),krivka(:,2),'b-','LineWidth',3); 
end

