Ho una serie di etichette e icone all'interno dello schermo. Un'etichetta è sulla destra dell'icona corrispondente.
Devo eseguire una sorta di declutter: quando due o più etichette si sovrappongono l'un l'altra (o un'etichetta con un'icona), l'etichetta deve essere spostata nello spazio libero. Questo per ogni etichetta. Devo spostare tutte le etichette sovrapposte in modo che alla fine del calcolo non ci siano più etichette / etichette e etichette / icone sovrapposte.
Ho memorizzato tutte le etichette in un elenco e ho provato a creare un ciclo in cui sposto un'etichetta in una spirale rettangolare (centrata sulla sua icona), finché non rimane nello spazio libero, quindi la fisso lì e lo spostamento etichetta successiva. Il problema è che questo algoritmo è molto lento e inefficiente (l'algoritmo dovrebbe funzionare in tempo reale).
Come dovrei organizzare le etichette e quale algoritmo posso usare per riordinare le etichette?