Interessante, da vedere, grazie.
Lo si fa per pietà e per brevità spesso. La prossima volta allora evito di dire che c’è altro, così ci si concentra sulla prima richiesta, che per me resta importante. ![]()
… è l’opposto di quello che ho chiesto. ![]()
boh… vado a far altro…
Lo so ![]()
![]()
![]()
Anche per me sembrava la risposta più adatta, ma non ero super sicuro fosse il punto del problema. Lo shortest path è quello che tecnicamente è più in linea con quello richiesto mi verrebbe da pensare.
La cosa positiva della convex hull è che si può ottenere anche in 3D.
Poi mi chiedo se usare una pipeline leggermente più complicata possa fornire più controllo? Tipo shrinkwrappare tutto, contourare, semplificare le polilinee e poi calcolare la lunghezza minima delle curve? Mmh non so certissimo però ne valga la pena
Ho visto poi che ne aveva gia’ parlato Riccardo (del componente Convex Hull), non me ne ero accorto … ![]()
Quanto al problema generale, sia in quanto suggerisci tu che in quanto detto in precedenza da Riccardo ci sono delle idee molto interessanti secondo me.
( Non che abbia capito molto, purtroppo non ho familiarita’ con questi algoritmi, ma certo ce l’avete voi
)
Credo che si riveleranno utili per Luca. ![]()
Dati gli elementi nel piano come polilinee tutte opportunamente orientate (tutte senso orario o senso antiorario). Per ogni elemento si calcola il poligono convesso (calcolati ad esempio con qhull). Si determina la retta di minima distanza tra gli elementi da collegare alla retta. Di seguito si verifica l’intersezione con gli ostacoli e si itera. Si parte con i candidati, i vertici del segmento dell’ostacolo intersecato procedendo verso destra o sinistra. Essendo convessi le verifiche di intersezione sono semplificate e banali (segno del prodotto vettoriale). Un ostacolo dovrebbe dare due soluzioni, due ostacoli 4 ecc.. Se non vuoi scrivere codice, ma dovrai scriverne comunque (!), CGAL è una libreria molto potente.