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 :

Cellule de Voronoi et envellope convexe


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Cellule de Voronoi et envellope convexe
    Bonjour,

    Étant donné un enveloppe convexe avec des points à l'intérieur reparties de manière aléatoire, je cherche à tracer le diagramme de voronoi et que les arêtes qui vont à l'infini s'arrête sur les frontières de l'enveloppe convexe... sur Matlab voronoi ne dessine pas les arêtes qui tendent vers l'infini d'où le probléme

    En ce moment je suis entrain de coder un algo qui fait cela mais je suis ouvert à toutes vos idées

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    J'ai pas compris la question

    Plus sérieusement, pourrais-tu préciser ta question et nous montrer le code que tu utilises ainsi que, si possible, le résultat obtenu et le résultat à obtenir?

    Ca sera plus facile de t'aider

    Duf
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    En fait le code fait plusieurs lignes ( une centaine) ... De maniére un peu claire je cherche a dessiner un diagramme de voronoi d'un ensemble de points delimité par un enveloppe convexe ! le but a la fin et d'avoir une segmentation et que chaque cellule contient un seul point ! le code est un vrai chantier dans le sens où je suis entrain de l'implémenter .

    mais j'ai la conviction que cet algo est déja fait, moi j'en ai concu un mais pas trés performant (je calcule toutes les mediatrices toutes les intersections) et donc je cherche un algo ou une idée et aprés je l'implémente sans probleme pour comparer avec ce que j'aurai obtenu !

  4. #4
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    salut,

    une manière de faire (pas très propre, mais bon...) est de rajouter des points supplémentaires autour des sommets qui t'intéressent. Ainsi, le diagramme de Voronoi qui sera calcule aura toujours des cellules infinies, mais elles correspondront aux points rajouter. L'idée est ensuite de ne garder que les cellules qui correspondent a tes points de départ, ce qui permet de calculer les éventuelles intersections avec l'enveloppe convexe de départ.

    A+

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Salut,

    une méthode est de prendre les symétriques par rapport à tes frontières des points sur les bords de ta structure.

    Par exemple, j'ai pris l'exemple 3 de la doc de la fonction voronoi. J'ai pris en compte tous les symétriques de l'ensemble des points par rapport aux 4 frontières de mon carré (limite entre 0 et 1.5).

    Bien sûr, cela n'est pas optimisé car il y a beaucoup de calcul inutile, donc il faut trouver une méthode de sélection des points à considérer en dehors de la frontière, mais c'est l'idée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    rand('state',5);
    x = rand(1,10); y = rand(1,10); 
    x = [x -x x x (x-1.5)*(-1)+1.5];
    y = [y y -y (y-1.5)*(-1)+1.5 y];
     
    x = [x' y'];
    [v,c]=voronoin(x); 
    for i = 1:10%length(c) 
    if all(c{i}~=1)   % If at least one of the indices is 1, 
                      % then it is an open region and we can't 
                      % patch that.
    patch(v(c{i},1),v(c{i},2),i); % use color i.
    end
    end
    axis equal
    hold on
    plot(x(:,1),x(:,2),'or')
    Et le résultat (on affiche uniquement l'enveloppe convexe des 10 premiers points) avec les points rajoutés autour :
    Images attachées Images attachées  
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  6. #6
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    Salut,

    une contribution vient d'être postée sur le FeX, qui pourrait peut-être faire l'affaire (j'ai pas teste).
    http://www.mathworks.fr/matlabcentra...oronoi-diagram

    Semble marcher pour des polygones même non convexes et pouvant avoir des trous !

    A+

Discussions similaires

  1. TDBGRID - Couleur de fond d'une seule cellule
    Par cgo dans le forum Bases de données
    Réponses: 5
    Dernier message: 11/09/2009, 10h16
  2. Superposer Cellule Voronoi sur un maillage carré
    Par Gonath dans le forum MATLAB
    Réponses: 3
    Dernier message: 21/10/2007, 20h59
  3. Superposer Cellule Voronoi sur un maillage carré
    Par Gonath dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 21/10/2007, 01h31
  4. [VBA-E] Fonction sum() dans une cellule
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2002, 10h18
  5. [VBA-E] [Excel] Protection d'une plage de cellules
    Par fikou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/11/2002, 11h28

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