2013-09-24 13 views
5

Ho due poligoni e voglio ottenere la distanza minima e vengono misurati i punti tra questa distanza. Naturalmente un punto del genere potrebbe benissimo trovarsi sul bordo tra due nodi.Punti più vicini di due poligoni

Ecco un esempio:

Example

Sto cercando un algoritmo che mi dà la distanza verde e i due punti.

+1

Dalla foto sembra che i plygons possono essere concava. Altrimenti l'algoritmo GJK è un'ottima soluzione al problema –

+0

vedere http://stackoverflow.com/questions/3700983/questo-è-il-fastest-algorithm-to-calculate-the-minimum-distance-between-two-sets – Ari

risposta

2

Se i poligoni non si intersecano, si potrebbe fare questo:

Se si dispone di un poligono A e poligono B e A [i] e B [j] sono i vertici di A e B, rispettivamente. Quindi puoi calcolare la distanza più vicina da A [i] a ciascun segmento di B (potresti usare qualcosa come this, ma considera che lavorerai con i segmenti, quindi devi lavorare con il punto di partenza e di arrivo di il segmento).

poi si deve fare lo stesso, ma da tutti i B [j] per tutti i segmenti di A.

E finalmente prendere il più piccolo.

Basta ricordare il mio commento precedente: considerano il punto di partenza e del segmento finale, mentre il calcolo della distanza più breve per la linea di questo segmento è in, perché il punto di intersezione potrebbe essere fuori del segmento. Guarda here per controllare questa ultima cosa. Se il punto viene fuori a mantenere il bordo più vicino del segmento)

saluti

Problemi correlati