1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| S1=importdata('Strecke3V.txt');
V=load('Truckhitch.mat');
%V=courbe de référence;
%S1=courbe expérimentale;
%compteur pour plus tard trouver le j.
S1(1,4)=1;
for i=1:length(S1)-1
S1(i+1,4)=S1(i,4)+1;
end
for i=1:length(V)
%[x,y,z]= résolution d'un système : vecteurs (V(i+1)_V(i)) et (V(i+1)_X)
%doivent être orthogonaux et la distance entre V(i+1)et X égale à 20
[x,y,z]=solve('dot([V(i+1,1)-V(i,1),V(i+1,2)-V(i,2),V(i+1,3)-V(i,3)],[x-V(i+1,1),y-V(i+1,2),z-V(i+1,3)])=0','sqrt(x-S1(i+1,1))^2+(y-V(i+1,2))^2+(z-S1(i+1,3))^2))=20');
%[l,j]avec l facteur proportionnel. Système : vecteurs X1_X et S1(j)_X1 orthogonaux
% et distance minimale entre S1(j) et X1.
% X1-X=l*(V(i+1)-X)
[l,S1(j,:)]=solve('dot([l*(V(i+1,1)-x),l*(V(i+1,2)-y),l*(V(i+1,1)-z)],[S1(j,1)-(l*(V(i+1,1)-x)+x),S1(j,2))-(l*(V(i+1,2)-y)+y),S1(j,3)-(l*(V(i+1,1)-z)+z)])=0','min(sqrt((S1(j,1)-(l*(V(i+1,1)-x)+x))^2+((S1(j,2)-(l*(V(i+1,2)-y)+y))^2+(S1(j,3)-(l*(V(i+1,1)-z)+z))^2)))');
J(i,1)=S1(j,4);
end
%calcul de la distance minimale entre la courbe V et S1 sur l'intervalle j-20:j+20
i=20;
for k=J(i,1)-20:J(i,1)+20
D1(i,1)=sqrt((V(i,1)-S1(j,1))^2+((V(i,2)-V(j,2))^2+(V(i,3)-S1(j,3))^2));
find(min(D1(i,1)));
i=i+1;
end |
Partager