clear;clc;close;
hold on;figure(1);xlabel('Longitude');ylabel('Latitude');zlabel('Altitude');
AXIS([0 3000 0 3000 100 1000])
%Mémorisation des points checkpoints.
% for i=1 : 3
% checkpoint(1,i)=1500+rand()*500;
% checkpoint(2,i)=1000+rand()*1000;
% checkpoint(3,i)=100+rand()*1000;
% plot(checkpoint(1,i), checkpoint(2,i),'+R');
% end
checkpoint(1,1)=1000;
checkpoint(2,1)=1000;
% checkpoint(3,1)=100;
checkpoint(1,2)=1000;
checkpoint(2,2)=1500;
% checkpoint(3,2)=100;
checkpoint(1,3)=1500;
checkpoint(2,3)=1500;
% checkpoint(3,3)=100;
checkpoint(1,4)=1500;
checkpoint(2,4)=2000;
% checkpoint(3,4)=100;
plot(checkpoint(1,

, checkpoint(2,

,'+R');
resolution=1500;
n=size(checkpoint,2)-1;
temps=1:resolution;
for t=temps
for i=1:n+1
ncr=fact(n)/(fact(i-1)*fact(n-(i-1)));
vect_bezier(i)=ncr/((resolution-1)^n)*(resolution-t)^(n-(i-1))*(t-1)^(i-1);
end
abscisse(t)=sum(checkpoint(1:2:2*(n+1)).*vect_bezier);
ordonnee(t)=sum(checkpoint(2:2:2*(n+1)).*vect_bezier);
% altitude(t)=sum(checkpoint(3:3:3*(n+1)).*vect_bezier);
end % application de la formule X = sum(bi.Bi)
% affichage de la courbe de Bézier
plot(abscisse,ordonnee,'b')
hold off;
Partager