Rechercher : dans
Par :

Visualisation 3d sur matlab

Dernière réponse le 12 nov 2009 à 23:46:21 BELDITOWN, le 1 fév 2009 à 22:08:15 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « visualisation 3d sur matlab » dans :
Les logiciels de plan de maison en 3D VoirQuels logiciels pour faire le plan de ma maison ? Logiciels gratuits Archi Facile Architecture 3D Google SketchUp Logiciels payants Collection 3D Architecte Home Plan Pro FloorPlan3D Plans déjà tout prêts Les principaux...
Logiciels 3D VoirVoici une sélection de logiciels 3D gratuits: Blender 3D Canvas 7.1 TrueSpace 3.2 Art of Illusion Wings 3D KPovModeler OpenFX K-3D Daz Studio Blender
Télécharger Sweet Home 3D VoirAvant d'aménager votre maison ou votre appartement, il n'est plus nécessaire de déplacer tous les meubles pour voir le résultat. Vous pouvez désormais simuler l'aménagement des meubles de votre logement. Sweet Home 3D est un programme permettant...

1

Char Snipeur, le 2 fév 2009 à 08:57:25

Plot3(X,Y,Z)
met X=[x1,x2,x3,x1] si tu veux fermé le triangle (pareil pour Y et Z) Salutation !
Char Snipeur

Répondre à Char Snipeur

2

belditown, le 2 fév 2009 à 13:32:52

Bonjour
merci
mais comment visualisé les arrétes pour liée les sommets.
à bien tot

Répondre à belditown

3

Char Snipeur, le 2 fév 2009 à 13:57:23

Help plot3 !
plot3(x,y,z,'-') Salutation !
Char Snipeur

Répondre à Char Snipeur

4

BELDITOWN, le 2 fév 2009 à 21:42:40

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

Répondre à BELDITOWN

5

Char Snipeur, le 3 fév 2009 à 08:42:44

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) Salutation !
Char Snipeur

Répondre à Char Snipeur

6

Fee Fay, le 3 fév 2009 à 14:21:55
  • +1

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 Tous les animaux criaient bien haut
Qu’il était le crapaud le plus beau, quand il jouait du banj­o

Répondre à Fee Fay

7

 elhberg, le 12 nov 2009 à 23:46:21

Bonjour.
moi je veux dessiner les srfaces de bezier sur matlab mais je sais pas comment faires.

Répondre à elhberg