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
| V =[1.19 3.55 -7.4 ; 4.82 3.1 6.23 ; -3.55 8.61 1.68 ; 2.41 -2.61 -3.69 ; -2.49 -4.2 -9.78 ; -0.6 9.53 -0.53 ; -6.96 -1.46 -2.46 ; -4.7 -9.94 -3.71];
T= [6 2 3 ; 4 1 2 ; 1 2 6 ; 8 5 4 ; 7 8 5 ; 4 2 8 ; 2 8 7 ; 4 5 1 ; 1 6 3 ; 5 1 7 ; 7 1 3 ; 2 7 3];
figure('doublebuffer','on')
colormap(gray);
trisurf(T,V(:,1),V(:,2),V(:,3)) %Pour afficher les triangles
alpha(.85)
% Arêtes
% Premier sommet - Second sommet
A=[V(T(:,1),1)-V(T(:,2),1) V(T(:,1),2)-V(T(:,2),2) V(T(:,1),3)-V(T(:,2),3)];
% Second sommet - troisième sommet
B=[V(T(:,2),1)-V(T(:,3),1) V(T(:,2),2)-V(T(:,3),2) V(T(:,2),3)-V(T(:,3),3)];
% Normales par produit vectoriel des arêtes
n=cross(A,B);
n=n./norm(n);
% Centres géométriques
C=[mean(reshape(V(T,1),size(T,1),[]),2) mean(reshape(V(T,2),size(T,1),[]),2) mean(reshape(V(T,3),size(T,1),[]),2)];
hold on
% Affichage des centres
plot3(C(:,1),C(:,2),C(:,3),'g*')
% Affichage des normales
quiver3(C(:,1),C(:,2),C(:,3),n(:,1),n(:,2),n(:,3))
axis equal vis3d off |
Partager