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 :

[voronoin] Diagramme de Voronoi dans un cube [Débutant]


Sujet :

MATLAB

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    février 2010
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 2 048
    Points : 877
    Points
    877
    Par défaut [voronoin] Diagramme de Voronoi dans un cube
    Bonjour tous,

    j'aimerai utiliser la fonction "voronoin" de matlab :
    http://www.mathworks.fr/fr/help/matl.../voronoin.html

    pour faire le maillage d'un cube comme vous pouvez voir en pièce jointe.

    Le soucis est que j'ai lu la doc et je n'ai rien compris, je trouve que les exemples sont pourri...

    Pourriez vous s'il vous plait me montrer comment faire ce genre
    de choses avec matlab ?

    je vous remercie pour votre aide

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    février 2010
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 2 048
    Points : 877
    Points
    877
    Par défaut
    Je viens de trouver deux discussions très intéressantes :
    http://www.developpez.net/forums/d44...noi-3d-resolu/
    et
    http://www.developpez.net/forums/d12...hlight=voronoi

    Du coup, voici ce que j'ai fais:
    1) j'ai donné les coordonnées des sommets de mon cube dans X
    2) j'ai appelé la fonction de voronoi pour qu'elle me fasse un maillage dans ce domaine (avec l'option Qbb car j'ai une dimension=3)
    3) j'ai mis l'option 'QJ' mais je ne sais pas vraiment pourquoi... le message d'erreur optenu me semblait moins grave que si je mets rien...
    4) ensuite à partir des données renvoyées par 'voronoin' j'essai de faire une enveloppe convexe grace à 'convhulln' et tracer cette enveloppe grace a patch.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    clear all;close all;clc;
    X=[0 0 0;1 0 0;1 1 0;0 1 0;0 0 1;1 0 1;1 1 1;0 1 1];
    [V,C] = voronoin(X,{'Qbb','QJ'});
    K = convhulln(V,{'Qt','Pp'});
     
    patch('faces', K, 'Vertices',V)
    le soucis est que je ne comprends pas vraiment la logique des deux fonctions "voronoin" et "convhulln" du coup je ne sais pas trop quoi leur donner en entrée et avec quelle options....

    j'ai l'impression qu'il serait mieux correct de donner "C" en 'input' de la fonction convhulln mais d'après la doc il n'est pas spécifié que cette fonction prend des cell en entrée

    pourriez vous me débloquer pour ce petit bout de code svp ?

    merci

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Ingénieur R&D freelance
    Inscrit en
    novembre 2006
    Messages
    20 008
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur R&D freelance

    Informations forums :
    Inscription : novembre 2006
    Messages : 20 008
    Points : 53 972
    Points
    53 972
    Par défaut
    Je ne suis pas un spécialiste mais en suivant le lien donné dans le deuxième message de cette discussion : voronoi cells in bounded surface or volume

    Et en faisant simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    seeds = 2*(rand(100,3)-0.5); 
    Options.pbound = unitbox(3, 1); 
    V = mpt_voronoi(seeds, Options);
    plot(V)
    J'obtiens un résultat assez semblable.

    Il faudra sans doute lire la documentation de la toolbox pour améliorer le résultat.
    Images attachées Images attachées  
    Mes compétences :
    • conception mécanique 3D (Autodesk Fusion 360)
    • développement informatique (MATLAB, Python, C, VBA)
    • impression 3D (Ultimaker)
    • programmation de microcontrôleur (Microchip PIC et 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)

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    février 2010
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 2 048
    Points : 877
    Points
    877
    Par défaut
    merci beaucoup DUT!!!!!!!!!!!!
    c'est exactement ce que je cherche à faire

    par contre ton code utilise une toolbox special "MPT" et je n'arrive pas à l'installer....

    d'après ce que j'ai compris il faut aller sur le site:
    http://control.ee.ethz.ch/~mpt

    ensuite prendre le dossier "MPT", le mettre sur un endroit de notre disque et suivre les instructions de cette pages :
    http://control.ee.ethz.ch/~mpt/docs/install.php

    le soucis est que même en procédant comme ceci matlab ne reconnait pas les fonctions de cette toolbox...

    pourrais tu m'en dire plus sur l'installation de MPT, comment as tu fais de ton côté ?

    merci

  5. #5
    Modérateur

    Avatar de Winjerome
    Homme Profil pro
    Inscrit en
    septembre 2009
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : septembre 2009
    Messages : 10 470
    Points : 78 043
    Points
    78 043
    Par défaut
    Bonjour,

    Je n'ai eu aucun problème en suivant ces mêmes directives...
    Qu'as-tu fait précisément ?

    Voir aussi la FAQ Comment utiliser une Toolbox ?
    Avant de poser votre question : FAQ, Tutoriels et recherche sur le forum
    Une erreur ? Messages d'erreur et avertissements
    "Ça ne marche pas" n'apporte aucune information utile permettant de vous aider. Expliquez clairement votre problème (erreurs entières, résultat souhaité vs obtenu...).
    En essayant continuellement on finit par réussir. Donc: plus ça rate, plus on a de chance que ça marche. - Jacques Rouxel
    L'expérience, c'est le nom que chacun donne à ses erreurs - Oscar Wilde
    Mes extensions FireDVP (Firefox), ChroDVP (Chrome) : suivi des nouveaux messages, boutons/raccourcis et bien plus !

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    février 2010
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 2 048
    Points : 877
    Points
    877
    Par défaut
    je viens de refaire les directives et à présent ça fonctionne....
    je pense que ça devait être un problème avec 'savepath' je n'avais pas cette commande auparavant, où peut être que mon 'Path' etait pas top (espace dans nom fichier...)

    bref, maintenant c'est réglé et ça fonctionne, merci beaucoup tous les 2

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/03/2007, 18h18
  2. [OLAP]Ecrire dans un cube
    Par crazy dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/08/2006, 13h13
  3. Algo de recherche dans un cube de couleur
    Par mamelouk dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/06/2005, 22h38
  4. Evolution du diagramme de classes dans la vie d'un projet
    Par ftrifiro dans le forum Diagrammes de Classes
    Réponses: 6
    Dernier message: 11/03/2005, 21h53
  5. Dessiner une ligne dans un cube transparent ?
    Par Muetdhiver dans le forum OpenGL
    Réponses: 4
    Dernier message: 04/05/2004, 12h06

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