Immagina un'area 2D, con un numero (array) di nodi (o punti) definiti al suo interno, in posizioni arbitrarie (ma note) (numero intero x, coordinate y), come questo:
Dalìvoglioessereingrado,programmaticamente,diaggiungereilmaggiornumeropossibiledi"link". Un "collegamento" è una linea retta tra due nodi qualsiasi, ma un collegamento non può attraversare un altro collegamento. Ho già creato un metodo che può verificare se due link si incrociano. ad esempio
Con un dato insieme di nodi, esiste un numero limitato di modi in cui i collegamenti possono essere disposti e voglio essere in grado di generare tutte quelle possibili combinazioni (valide).
Tuttavia, non ho assolutamente idea da dove cominciare. Potrei riempire casualmente i nodi con link validi, ma non so come generare iterativamente ogni possibile permutazione.
Suppongo che esista un qualche tipo di algoritmo per problemi come questo, probabilmente basato sulla ricorsione, ma le mie ricerche finora sono state infruttuose.
Non sto cercando una soluzione codificata, posso fare quella parte. Quello di cui ho bisogno è il processo di progettazione di alto livello, o algoritmo, che può essere seguito per risolvere questo problema.