salut
mon probleme est comme suite:
je veut en premiere lieu programmé les equation des formes classique (sphere,cube ,parllelepede .....)
1- je veut recipuré les points x,y,z
2-tracé en 3d la forme souhité
merci infiniement
Version imprimable
salut
mon probleme est comme suite:
je veut en premiere lieu programmé les equation des formes classique (sphere,cube ,parllelepede .....)
1- je veut recipuré les points x,y,z
2-tracé en 3d la forme souhité
merci infiniement
Salut,
tu bloque sur un passage particulier ?
t'as vu les fonctions SPHERE et CYLINDER ?
++
A quoi cela va-t-il servir ?
Quel est le contexte de l'étude ?
récipuration d'un fichier en format .txt ou .xyz et par la suite la recostruction
de la forme CAO
Et donc... c'est quoi le problème au juste ?
le probleme est dans le syntaxe du programme
j'ai essayé mais ca marche pas
Montre nous le code et dis nous clairement ce que tu cherches à faire
voila par exemple le programme d'une sphere
mais quand je récupère le nuage de points je trouve que ça ne ressemble pasCode:
1
2
3
4
5
6
7 A=[]; for x=-20:1:20 for y=-20:1:20 z=sqrt(x.^2+y.^2).^0.5; A=[A;x,y,z]; end end
à une sphère
J'ai de gros doutes sur ton équation...
Même si mes souvenirs sont rouillés.
Déjà là :Tu appliques 2 fois la racine carrée : une fois avec sqrt et une fois avec .^0.5.Code:sqrt(x.^2+y.^2).^0.5
De plus tu ne peux pas y arriver avec juste un vecteur x et un vecteur y, puisque pour une sphère, pour un couple (x,y) donné tu peux avoir 2 z différents.
Exemple : pour une sphère de rayon 1 centrée en (0,0,0), si x,y=0,0 on a z=-1 et z=1.
Et dans ton équation d'ailleurs il semblerait que le rayon ne soit pas pris en compte.
Mais bon tout ça est plus un problème de mathématiques au départ que de MATLAB.
As-tu regarder la fonction SPHERE ce serait plus simple ?
Salut,
j'ai 3 remarques :
Essayes ceci :Code:
1
2
3
4
5
6
7
8
9
10
11
12 %-- 1 % ici tu fait (x^2 + y^2).^(1/4) sqrt(x.^2+y.^2).^0.5 %-- 2 % Pour un sphère : Z = sqrt( R^2 -X^2 - Y^2); %-- 2 % Il faut rajouter -Z sinon tu obtiens un hémisphère
++Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 clc xx = -20:0.5:20; yy = -20:0.5:20; R = 20; [X Y] = meshgrid(xx,yy); Z = sqrt(R^2 - X.^2 - Y.^2); Z(imag(Z)~= 0) = nan; surf(X,Y,Z) axis equal hold on surf(X,Y,-Z)
Et puis modifies les limites des axes aussi :roll:
Ceci dit, elle a des trous cette sphère Mr Samurai :mouarf:Code:set(gca,'zlim',[-20,20])
Et donc sinon la fonction SPHERE ne te plait pas ?
Parce qu'au moins elle elle fait des jolies sphères.
MERCI POUR L'aide
Ce que tu veux n'est toujours pas clair...
Qu'est-ce qui ne te va pas dans ce que tu obtiens ?
A quoi veux-tu que tes données ressemblent ?
Je le redemande : pourquoi n'utilises-tu pas la fonction SPHERE puisque ce que tu veux c'est juste les points ?
Exemple :Code:
1
2
3
4 [x,y,z]=sphere(40);%donne une sphere de rayon 1 centree en (0,0,0) %donc on multiplie par 20 pour avoir un rayon 20 x=20*x;y=20*y;z=20*z; surf(x,y,z);
Complément au code de Caroline :
++Code:
1
2 Sortie = [x(:) y(:) z(:)];
@samurai : hum, t'es sur ?
Parce que SPHERE retourne quand même 3 matrices et non pas des vecteurs, et si on fait comme tu dis,ne donne plus du tout la même chose....Code:surf(Sortie)
Ou alors j'ai rien compris :aie:
Mais c'est vrai qu'il a l'air de vouloir une matrice N*3, donc SPHERE ne conviendrait pas.
chaque ligne de Sortie correspond à un point de la sphère.Code:
1
2
3
4
5
6
7 [x,y,z]=sphere(40); x=20*x; y=20*y; z=20*z; Sortie = [x(:) y(:) z(:)]; scatter3(Sortie(:,1), Sortie(:,2), Sortie(:,3))
++
MERCI POUR L'aide mes freres
le probleme est resolu