IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

3D Plot et Coordonnées Cylindriques


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 4
    Points : 1
    Points
    1
    Par défaut 3D Plot et Coordonnées Cylindriques
    Bonsoir,

    J'ai à disposition :
    - Un vecteur r de 1x50 représentant les rayons
    - Un vecteur alpha de 1x50 représentant les angles
    - Un vecteur z de 1x50 représentant la hauteur pour chaque couple (r,alpha). (zi est la valeur de (ri, alpha i))

    J'aurais souhaité représenter en 3D une surface à partir de mes 50 points (r,alpha,z) dans l'espace.

    Mon problème étant que surf et équivalent fonctionnent en coordonnées cartésiennes !

    En me renseignant sur internet, j'ai vu deux possibilitées, toutes 2 vaines :
    - La première me faisait transformer tout mes points du plan (r, theta) en points d'un plan (x,y) via pol2cart. Mais ensuite en passant à surf, il aurait fallu une matrice z avec une valeur pour chaque couple (x,y) possible incluant (xi,yj) alors que mon vecteur z ne propose qu'une valeur pour les couples (xi,yi).
    - La deuxième méthode commencait par un meshgrid, mais nécéssitait ensuite une fonction de r et theta pour trouver les Z (permettant ainsi d'avoir les z pour tout les couples comme expliqué ci-dessus).

    Je ne voit donc pas comment faire, si l'un de vous aurait une idée je suis preneur !

    Merci d'avance, et n'hésitez pas à me le faire savoir si je ne suis pas clair !

    Vincent.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Pourrais-tu nous fournir les données dans un fichier mat (compressé en zip ou rar) ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Hum un peu dur le fichier original comme y a des choses importées depuis mon ordinateur.

    J'ai recréé ci-dessous un modèle qui reproduit environ ce que j'ai à disposition à la fin.

    Cylindrique.zip

    Ce que je cherche à représenter est une demie-sphère (globe coupé à l'équateur avec dans le plan de l'equateur r la distance depuis le centre et alpha l'angle par rapport à une direction arbitraire, et z la hauteur).

    N'hésitez pas à me poser d'autres questions si ce n'est pas encore clair !

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Citation Envoyé par Seli-vince Voir le message
    Hum un peu dur le fichier original comme y a des choses importées depuis mon ordinateur.
    Ne peux-tu pas faire simplement ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    save('data.mat', 'r', 'alpha', 'z')
    Et compresser le fichier mat en zip ou rar ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Je n'avais jamais fais cela et ne connaissait pas désolé !

    Voilà donc mes 3 colonnes, la seule différence avec l'énoncé de mon dernier message est que le globe n'est pas coupé à l'équateur mais à un parrallèle autre, et que je n'attend pas une sphère parfaite mais biscornue !

    Les 2 exemples étant vraiment similaires, une réponse sur l'un ou l'autre me débloquera de toute manière alors n'hésitez pas à prendre celui simplifié si cela peut vous aider !

    data.zip

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    load data
     
    r = reshape(r, 73, []);
    alpha = reshape(alpha, 73, []);
    z = reshape(z, 73, []);
     
    figure
    plot3(r(:),alpha(:),z(:), 'r*');
    hold on
    surf(r,alpha,z)
     
    axis equal
    Images attachées Images attachées  
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre réponse.

    Votre façon de faire utilise (r,alpha,z) en tant que coordonées cartésiennes (x,y,z), alors que mes données sont en coordonnées polaire (r,angle,z).

    Comme expliqué ci-dessus, mon graphe final doit avoir la forme d'un globe coupé à un parallèle (ou dans l'exemple simplifié coupé à l'équateur : une demi-sphère).

    Donc les r indiques la distance par rapport au centre du repère, alpha l'angle fait par rapport à l'axe des x dans le plan (x,y) et z la hauteur du point.

  8. #8
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    load data
     
    r = reshape(r, 73, []);
    alpha = reshape(alpha, 73, []);
    z = reshape(z, 73, []);
     
    x = r.*cosd(alpha);
    y = r.*sind(alpha);
     
    figure
    surf(x,y,z)
     
    axis equal vis3d
    grid on
    Images attachées Images attachées  
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/01/2016, 08h14
  2. [ImageJ / plot] Recupérer les coordonnées de la sélection sur un plot
    Par Zenome dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 06/07/2015, 16h12
  3. Maillage en 3D, coordonnées cylindriques
    Par momow002 dans le forum Fortran
    Réponses: 3
    Dernier message: 22/07/2014, 19h22
  4. Coordonnées d'un point à partir d'un plot
    Par Hamza dans le forum Mathématiques
    Réponses: 5
    Dernier message: 12/06/2012, 20h50
  5. Détermination des coordonnées d'un point sur un plot
    Par Contractofoued dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 11/10/2007, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo