Esistono algoritmi per distanziare oggetti di dimensioni non uguali?

7

Sto lavorando alla visualizzazione di una gerarchia. Ci saranno gruppi di oggetti, ogni gruppo contenente rettangoli di larghezza fissa ma altezza variabile. Mi piacerebbe sistemarli in uno spazio rettangolare in modo da avere una spaziatura visiva uguale tra loro, qualcosa del genere:

Primadipassareungiornoainventarelaruota,esistonoalgoritmistandardperquestotipodidistribuzioneeriempimentodellospazio?Seglioggettifosserotuttidellastessadimensione,usereisolounagriglia.

Useròquestoalgoritmoaduelivelli:unavoltaperdisporreiclusteredinuovoperdisporreglioggettiall'internodiciascuncluster.Quest'ultimoavrebbeunaspettomiglioresefosserodispostiinunospazioapprossimativamentecircolare,masequestocomplicalecoseeccessivamente,iosonoOKconrettangolare.

Nonmostreròrelazionitraquestioggetti,quindilaminimizzazionedelladistanzanonènecessaria.

C'èunadomandasimile( link ) sulla disposizione delle immagini rettangolari eliminando o riducendo al minimo lo spazio bianco. Nel mio caso, voglio equalizzare lo spazio bianco, i cluster saranno circolari e alcuni cluster saranno molto più grandi di altri.

    
posta Community 27.11.2013 - 18:35
fonte

2 risposte

1

Questo è chiamato in matematica il problema di imballo dei contenitori . C'è un codice di esempio dell'applicazione primo algoritmo di adattamento . Affrontare la distribuzione dello spazio bianco come richiesto nella seconda metà del post potrebbe essere implementata introducendo il concetto di "colla" elastica come viene usata nel famoso programma di composizione TeX scritto da Donald E. Knuth.

    
risposta data 31.01.2014 - 12:05
fonte
0

Ho affrontato un problema simile randomizzando le posizioni di ciascun oggetto, quindi misurando la distanza e l'angolo (o il gradiente normalizzato) l'uno con l'altro e spingendoli leggermente verso o lontano l'uno dall'altro in base alla loro relazione con l'altro oggetto (correlato = vicino, non correlato = lontano), quindi ripetuto fino a quando le distanze iniziano a scendere entro un intervallo accettabile di ciò che si desidera. A seconda della dimensione del set di dati, può richiedere un po 'di tempo, ma dà buoni risultati finali e può sembrare freddo nel processo! :)

    
risposta data 11.02.2014 - 19:48
fonte

Leggi altre domande sui tag