begin process at 2012 05 28 21:22:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

enveloppe convexe sous matlab


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

enveloppe convexe sous matlab

mardi 13 janvier 2009 à 20:34:49 | enveloppe convexe sous matlab

leo2bordo

Bonjour,
J'ai fait un programme qui crée un nuage de points, ensuite trace la triangulation de Delaunay a ce nuage de points, dessine l'enveloppe convexe et fait le graphe de Gabriel à tous les cotés des triangles. Voila ca programme :
function ReconnaissanceFormebbbb   %creation nuage de points xmin=0;xmax=10;ymin=0;ymax=10; axis([xmin xmax ymin ymax]) hold on grid off x=[];y=[]; n=0;but=1; while but==1      [xi,yi,but]=ginput(1);      if(xi>=xmin && xi<=xmax && yi>=ymin && yi<=ymax)          if but==1              plot(xi,yi,'.r');              n=n+1;              x(:,n)=xi;y(:,n)=yi;          end;      else          but=0;      end; end; x=x';y=y';          ListPoint=[(1:n) 1];  %Triangulation de Delaunay triplot(delaunay(x,y),x,y)  pause;  %enveloppe convexe plot(x,y,'.k'); hold on;  ListPoint = convhull(x,y); n=size(ListPoint,2); for i=1:n      j=ListPoint(i); end;  plot(x(ListPoint),y(ListPoint),'green',x,y,'.r');hold on;              pause; clc;  %Construction de la liste des cotés d'une triangulation NbTr=size(delaunay(x,y),1); MCT=[]; Triangle=delaunay(x,y); for l=1:NbTr     Tr=Triangle(l,:);     i=Tr(1,1);j=Tr(1,2);k=Tr(1,3);     MCT=[MCT;[i,j];[j,k];[k,i] ];    end;  pause; hold on; RF=[]; n=size(MCT,1); for k=1:n     Cote=MCT(k,:);i=Cote(1);j=Cote(2);     n=numel(x);     A=[x(i) y(i)]; B=[x(j) y(j)];      M=1/2*(A+B);     R=(1/2)*norm(B-A);     Go=1;k=0;Bool=0;     while Go          k=k+1;          if ismember(k,[i j]);               else                  C=[x(k) y(k)];                  d=norm(C-M);                  Bool=d<R;               end;                  Go=not(Bool) & (k<n);          end;              if not(Bool) RF=[RF;Cote];          end;     end; end; plot(x,y,'.r'); n=size(Cote,1); for k=1:n     i=Cote(k,1);j=Cote(k,2);     plot([x(i) x(j)],[y(i) y(j)],'-b');hold on; end;


J'ai créé un nouveau programme qui trouve les cotés de l'enveloppe convexe.

function cote=TestSegConv(x,y,ListPoint)  cote=0;i=1; while(cote==0 && i<numel(ListPoint))     if(ListPoint(i)==x)         if(ListPoint(i+1)==y)             cote=1;         else             cote=0;         end;     else         if (ListPoint(i)==y)             if(ListPoint(i+1)==x)                 cote=1;             else                 cote=0;             end;         end;     end; i=i+1; end; 


J'ai essayer de l'insérer dans le premier programme pour que au lieu de faire le graphe de Gabriel sur tous les triangles, juste le faire sur toute l'enveloppe convexe et si on enleve 1 segment faire Gabriel sur la nouvelle enveloppe convexe, en fait faire de la reconnaissance de forme.
Merci d'avance pour votre aide


Cette discussion est classée dans : points, programme, nuage, enveloppe, convexe


Répondre à ce message

Sujets en rapport avec ce message

calculer une enveloppe convexe d'un nuage de point en c++ [ par fantome2040 ] Bonjour Comme il est ecrit dans le sujet je cherche un programme en C++ qui me permetrai de calculer une enveloppe convexe d'un nuage de point. Je [Clos] exercice complique [ par tdi2012 ] bonjour svp Exercice : Soit un système de grade où A>= 18, 18 > B >= 16, 16 > C >= 14, 14> D >= 12 et E < 12. Ecrivez un programme qui affiche votre Programme Langage C & Tableur Excel [ par thecabbages ] Bonjours,J'ai écrit un programme qui permet de générer les points d'une fonction. Par exemple:a =1; b =1;c=1 dans L'intervalle [1;2] et le nombre d'ec GL_POINTS [ par sousoi ] bonjour, j'ai un probleme avec les GL_POINTS et GL_TRIANGLES dans mon programme telque lorsque j'utilise GL_POINTS je trouve une resultat (cad je vois Nuage de points ...librairie stl [ par jojolero ] Bonjour a ttes et a tous!!!voila, je fais mon premier message sur ce forum qui m aide deja depuis un moment...donc grand moment pour moi...!!! :DJe re Maillage applique a un nuage de points [ par aerocrazy ] Bonjour a tous! Actuellement je cherche a créer un maillage 3D a base de triangles en OpenGL a partir d'un nuage de points. J'ai essaye de développer erreure avec API mysql dans un programme win32 avec fenetre [ par Coralsnake ] 3, 2, 1, contact ! (ceux de ma génération s'en souviendront) Bonjour a toute la commuautes des programmeur. Voila j ai un probleme quand j utilise Affichage d'un programme [ par Kurus ] Bonjour, j'ai fait un prog en c++ qui affiche une table d'addition tel que : + * 1 2 3 4 5 ***************** 1 * 2 3 4 5 6 2 * 3 4 5 6 7 Mettre un .exe dans un string [ par IMR ] Bonjour, je souhaiterais faire un programme en C++ qui extrait un .exe vers un endroit précis. je me suis dit que je pouvais stocker mon .exe dans un suppression des fichiers [ par boualiasma ] Bonjour, Je voulais supprimer totalement à partir de mon programme C sous windows tous les fichiers textes temporaires dans mon répertoire de travail


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,120 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales