Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - majojimu

#1
Hola.
Tengo un cuadrado y distintos puntos en un plano. De cada punto sabemos su ejex y ejey.  Pretendo calcular que punto es más cercano a cada vértice del cuadrado.

Cada punto se refiere a un peaton y tiene la siguiente estructura
Código (cpp) [Seleccionar]
struct Vpeaton
{
      int ad_peaton;     //numero del punto
      double adg_x;      //eje x del punto
      double adg_y;      //eje y del punto
};
typedef std::vector<Vpeaton> V_peaton;


Mientras que el cuadrado viene definido por los vertices (xsup,ysup), (xsup, yinf), (xinf,ysup) y (xinf,ysup).

Este es el código que he escrito para averiguar el punto más cercano a cada esquina del cuadrado. Pero no me funciona y no se en que falla.

Código (cpp) [Seleccionar]

V_peaton Areas;
//buscar peston cercano a cada esquina.
             distminXsYs = sqrt((xsup-Areas[0].adg_x)*(xsup-Areas[0].adg_x)+(ysup-Areas[0].adg_y)*(ysup-Areas[0].adg_y));
             distminXiYs = sqrt((xinf-Areas[0].adg_x)*(xinf-Areas[0].adg_x)+(ysup-Areas[0].adg_y)*(ysup-Areas[0].adg_y));
             distminXsYi = sqrt((xsup-Areas[0].adg_x)*(xsup-Areas[0].adg_x)+(yinf-Areas[0].adg_y)*(yinf-Areas[0].adg_y));
             distminXiYi = sqrt((xinf-Areas[0].adg_x)*(xinf-Areas[0].adg_x)+(yinf-Areas[0].adg_y)*(yinf-Areas[0].adg_y));
       
             for(int i=1; i<Areas.size(); i++)  
             {                  
                   dist1 = sqrt((xsup-Areas[i].adg_x)*(xsup-Areas[i].adg_x)+(ysup-Areas[i].adg_y)*(ysup-Areas[i].adg_y));
                   dist2 = sqrt((xinf-Areas[i].adg_x)*(xinf-Areas[i].adg_x)+(ysup-Areas[i].adg_y)*(ysup-Areas[i].adg_y));
                   dist3 = sqrt((xsup-Areas[i].adg_x)*(xsup-Areas[i].adg_x)+(yinf-Areas[i].adg_y)*(yinf-Areas[i].adg_y));
                   dist4 = sqrt((xinf-Areas[i].adg_x)*(xinf-Areas[i].adg_x)+(yinf-Areas[i].adg_y)*(yinf-Areas[i].adg_y));
                   
                   if(dist1<distminXsYs)
                   {
                              distminXsYs=dist1;
                              peaton_1=Areas[i].ad_peaton;
                   }
                   if (dist2<distminXiYs)
                   {
                              distminXiYs=dist2;
                              peaton_2=Areas[i].ad_peaton;
                   }                              
                   if(dist3<distminXsYi);
                   {
                              distminXsYi=dist3;
                              peaton_3=Areas[i].ad_peaton;
                   }
                   if(dist4<distminXiYi);
                   {
                              distminXiYi=dist4;
                              peaton_4=Areas[i].ad_peaton;
                   }
           }
#2
Programación C/C++ / Ayuda ordenar ejes
3 Julio 2013, 21:19 PM
Hola.
Necesito ayuda para ordenar los vértices de un polígono convexo.
Tengo los siguientes vértices (x,y).
-9.75, 1.12.
-5.5, -0.5
-9.75, -1.12
-8, 1
-7.75, -1.4

Pues bien, lo que quiero es organizar dichos vértices para formar un polígono convexo.

Muchas gracias de antemano.