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
|
% Arêtes
% Deuxième - Premier sommet
AB=[M(T(:,2),1)-M(T(:,1),1) M(T(:,2),2)-M(T(:,1),2) M(T(:,2),3)-M(T(:,1),3)];
% Troisème - Premier sommet
AC=[M(T(:,3),1)-M(T(:,1),1) M(T(:,3),2)-M(T(:,1),2) M(T(:,3),3)-M(T(:,1),3)];
% Troisème - Deuxième sommet
BC=[M(T(:,3),1)-M(T(:,2),1) M(T(:,3),2)-M(T(:,2),2) M(T(:,3),3)-M(T(:,2),3)];
Np=[0 0 1] %vecteur normal de mon plan
d=100 %dans l'équation du plan z+d=0
%intersection avec le vecteur AB
%full
for i = 1:1:length(AB);
a = 1:3:length(M);
b = 2:3:length(M);
c = 3:3:length(M);
j = 1:1:length(M);
u1 = M(b,1)-M(a,1);
u2 = M(b,2)-M(b,2);
u3 = M(b,3)-M(b,3);
if dot(AB(i,: ),Np)== 0 %produit scalaire, si =0 alors le vecteur est // au plan
if M(T(a,1),3)== d %Si le z du point A est égal à d alors le
%vecteur est dans le plan en entier
A=[M(a,1) M(a,2)]; %essai
Xs(j)= A(1); %essai
Ys(j)= A(2); %essai
V(j,1:2)= [X(j) Y(i)] %essai
else %none
resultat='none'
end
else %point, produit scalaire différent de 0, il faut vérifier que
%le point d'intersection de coordonnées (xi, yi, zi)
%appartient au plan et au segment
zi=-d;
k=(-d-M(a,3))/u3;
yi=M(a,2)+u2*k;
xi=M(a,1)+u1*k;
Xs(j)=xi; %essai
Ys(j)=yi; %essai
V(j,1:2) = [X(j) Y(j)] %essai
end
end
%essai : je voudrais récupérer une matrice deux colonnes contenant tout mes
%points dans l'ordre |
Partager