swapd0
24/07/2015, 21:41
Llevo unos dias un poco espesos y no doy con la tecla.
Tengo un conjunto de puntos sin ordenar, y necesito ordenarlos para formar una polilinea con ellos. En la siguiente captura se pueden ver los puntos y una ordenacion por ángulo (arriba) y otra por mi algoritmo abajo.
44215
El problema viene cuando le meto un ejemplo mas "real", sacando los puntos de secciones de nubes de puntos hechas por esferas que sale esta mierda, incluso hay veces que no saca ni un solo circulo y se para antes.
44216
El algoritmo mio funciona asi:
- Se quitan los puntos repetidos (dan muchos problemas)
- Se calcula el diagrama de voronoi con los puntos
- Calculo un grafo usando el diagrama de voronoi donde tendre de cada punto aristas con la distancia a los puntos vecinos.
- Busco la arista mas corta y la meto en la solución
- Cojo los extremos de la solución y cojo entre los vértices adyacentes (a la cabeza y la cola) con el que este mas cerca y tenga que girar menos según la dirección que lleve. Marco este vértice como usado.
- Repito hasta que no encuentro un vértice adyacente libre
Alguna idea para mejorarlo, ¿y para que no se pase al circulo vecino? Puede que sea mejor primero separar los puntos en grupos y despues ordenarlos porque de esa forma va bien (como en la primera captura), ¿alguna idea de como separar los grupos?.
-----Actualizado-----
Creo que se como separar los grupos, mañana probare a ver que sale. Por hoy ya he tenido bastantes quebraderos de cabeza.
Tengo un conjunto de puntos sin ordenar, y necesito ordenarlos para formar una polilinea con ellos. En la siguiente captura se pueden ver los puntos y una ordenacion por ángulo (arriba) y otra por mi algoritmo abajo.
44215
El problema viene cuando le meto un ejemplo mas "real", sacando los puntos de secciones de nubes de puntos hechas por esferas que sale esta mierda, incluso hay veces que no saca ni un solo circulo y se para antes.
44216
El algoritmo mio funciona asi:
- Se quitan los puntos repetidos (dan muchos problemas)
- Se calcula el diagrama de voronoi con los puntos
- Calculo un grafo usando el diagrama de voronoi donde tendre de cada punto aristas con la distancia a los puntos vecinos.
- Busco la arista mas corta y la meto en la solución
- Cojo los extremos de la solución y cojo entre los vértices adyacentes (a la cabeza y la cola) con el que este mas cerca y tenga que girar menos según la dirección que lleve. Marco este vértice como usado.
- Repito hasta que no encuentro un vértice adyacente libre
Alguna idea para mejorarlo, ¿y para que no se pase al circulo vecino? Puede que sea mejor primero separar los puntos en grupos y despues ordenarlos porque de esa forma va bien (como en la primera captura), ¿alguna idea de como separar los grupos?.
-----Actualizado-----
Creo que se como separar los grupos, mañana probare a ver que sale. Por hoy ya he tenido bastantes quebraderos de cabeza.