Diciamo che ho una lista di punti (nel mio caso, puntare oggetti in un'implementazione Python). Poi ho un segmento di linea che collega due di questi punti.
Voglio sapere se esiste un modo per trovare in modo efficiente il punto dall'elenco più vicino al segmento di linea. Mi rendo conto che potrei passare attraverso tutti i punti e controllare le distanze individualmente, quindi selezionare la distanza più piccola, ma alla fine spero di ridimensionare il programma fino ad affrontare forse milioni di punti. Quindi, sai, forse qualcosa di più efficiente di questo?
Se aiuta, in termini di CCW, tutti i punti che vengono interrogati devono essere a "sinistra" / "sotto" o "a destra" / "sopra" del segmento di linea; Non penso che la mia implementazione coinvolgerà il controllo dei punti su entrambi i lati del segmento.
I punti saranno oggetti punto con coordinate (x, y) e qualche altra roba non direttamente rilevante per questa domanda. I segmenti di linea sono attualmente implementati come oggetti contenenti riferimenti a due oggetti punto (i suoi vertici) e la sua lunghezza.
Come ho detto questo fa parte di un'implementazione Python. Sto cercando di progettare un modo per trovare uno scafo concavo su un insieme di punti (dati alcuni parametri predefiniti su come decidere se un punto non sullo scafo convesso si trova sullo scafo concavo o meno). Voglio prima trovare lo scafo convesso, poi per ogni segmento di linea sullo scafo convesso trovare il punto più vicino ad esso, fare un triangolo con quel punto, quindi decidere se quel triangolo ha "cancellato in modo tale che il punto interno sia ora sullo scafo .
Ho pensato di metterlo in Matematica, ma non ho bisogno di un'equazione a distanza - ho bisogno di aiuto con un algoritmo efficiente per trovare i punti più vicini a un segmento di linea. Nota anche che non sto cercando il punto più vicino su una linea per un punto di input; Sto cercando il punto più vicino da un set a un segmento di linea di input.
Grazie a tutti!