Visualisation 3d sur matlab

Résolu
BELDITOWN -  
 elhberg -
Bonjour,
comment on peut visualiser un triangle dans l'espace 3D sur Matlab
tel que:
le triangle admet 3 sommets
A( x1,y1,z1)
B(x2,y2,z2)
C(x3,y3,z3)

donnes:
X=[x1,x2,x3]
Y=[y1,y2,y3]
X=[z1,z2,z3]

merci
A voir également:

5 réponses

Fee Fay Messages postés 635 Date d'inscription   Statut Membre Dernière intervention   377
 
Bonjour à tous les deux encore ;-)

Effectivement, il n'y a pas de souci pour donner des matrices à Matlab pour le plot3.
En reprenant ce qu'a écrit BELTIDOWN :
s1 liée à s5
s1 liée à s4
s1 liée à s3
s3 liée à s5
s3 liée à s2
s5 liée à s2

Cela donnerait quelque chose du genre :
P = [s1;s5;s1;s4;s1;s3;s3;s5;s3;s2;s5;s2];
plot3(reshape(P(:,1),[2 6]),reshape(P(:,2),[2 6]),reshape(P(:,3),[2 6]));
Il n'en est pas question dans le message 4, mais s'il s'agit de tracer tous les segments possibles reliant les 5 points, ils ne sont pas tous tracés ici (il y en a 10 normalement). De plus, si c'est effectivement le but recherché, pour un nombre de points un peu plus important, cela risque d'être quelque peu laborieux à taper. Dans ce cas, ce ne serait pas mal d'utiliser la fonction nchoosek de Matlab pour avoir toutes les combinaisons possibles de 2 points.
Quelque chose du genre devait convenir :
%% Supposons qu'il y ait 10 points
n = 10;
%% Juste pour l'exemple, on choisit 10 points au hasard
s = rand(n,3);
s1=s(1,:);s2=s(2,:);s3=s(3,:);s4=s(4,:);s5=s(5,:);s6=s(6,:);s7=s(7,:);s8=s(8,:);s9=s(9,:);s10=s(10,:);
%% Toutes les combinaisons possibles de 2 entiers choisis parmi
%% 1,2,3,4,5,6,7,8,9,10
C = nchoosek((1:n),2).';
nc = nchoosek(n,2);
%% On construit la chaîne de caractères à évaluer
%% pour la passer en argument à plot3
C = strtrim(cellstr([num2str(reshape(C,[2*nc 1])) repmat(';',[2*nc 1])]));
P = strvcat(strcat(cellstr(repmat('s',[2*nc 1])),C)).';
P = reshape(P,1,numel(P));
P = ['[' P(1:end-1) '];'];
%% On évalue P
P = eval(P);
%% On trace
plot3(reshape(P(:,1),[2 nc]),reshape(P(:,2),[2 nc]),reshape(P(:,3),[2 nc]));
Bonne journée
4
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
plot3(X,Y,Z)
met X=[x1,x2,x3,x1] si tu veux fermé le triangle (pareil pour Y et Z)
0
belditown
 
bonjour
merci
mais comment visualisé les arrétes pour liée les sommets.
à bien tot
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
help plot3 !
plot3(x,y,z,'-')
0
BELDITOWN
 
merci
mais désolé je croix que tu n'a pas bien compris ma problématique
supposons que j'ai 5 sommets [ s1,s2,s3,s4,s5]
s1=[x1,y1,z1]
s2=[x2,y2,z2]
s3=[x3,y3,z3]
s4=[x4,y4,z4]
s5=[x5,y5,z5]

les liaisons ou les arrêtes entre les sommets sont:
s1 liée à s5
s1 liée à s4
s1 liée à s3
s3 liée à s5
s3 liée à s2
s5 liée à s2
danc comment on peut faire figuré ou visualisé touts les sommets et les arrêts ( visualisation des arrêts = visualisation d'un graphes ou une squelette 3D)
merci une autre fois cher monsieur
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Ce n'est pas que je n'ai pas bien compris, c'est que tu t'es très mal expliqué.
Tu parles d'un triangle, donc trois arrêtes, et là pas de souci.
Si tu as plus de sommets, c'est plus compliqué, à ma connaissance il n'y a pas de fonction pour le faire directement.
Je pense qu'il faut alors se taper l'algorithme pour tracer toutes les arrêtes.
toujours avec plot3, tu lui donne chaque arrete à tracer. Peut être qu'en lui fournissant 3 matrices il comprendra, regarde l'aide (help plot3)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
elhberg
 
Bonjour.
moi je veux dessiner les srfaces de bezier sur matlab mais je sais pas comment faires.
-1