Ho bisogno di disegnare un albero della struttura aziendale (simile a un albero genealogico) in C#. Tutto il codice ancillare è lì. È colorato, interattivo e di fantasia. L'unico problema è l'algoritmo che in realtà decide dove mettere ogni nodo mi sta dando un sacco di dolore.Algoritmo per disegnare alberi in modo efficiente?
Per il momento, le scatole hanno dimensioni 100 x 50 e ho una classe chiamata StaffNode
che rappresenta un membro dello staff in una particolare coordinata x, y.
L'algoritmo deve solo creare un List<StaffNode>
con l'appropriato xe y di.
Questo è incredibilmente difficile.
In sostanza l'algoritmo ricorsivo è lungo la struttura aziendale, in modo da sinistra> destra, poi top-> verso il basso lungo l'albero. Ovviamente è male se due nodi sono uno sopra l'altro.
mi viene in mente un paio di algoritmi che potrebbero produrre qualcosa di simile:
*
o O
o o o o o O
o O O O O O
O
Mentre qualcosa come questo sarebbe meglio, dal momento che l'albero è molto grande e lo spazio è molto limitato:
*
o O
o o o o o O
o O O O O O
O
Qualcuno di voi ha dovuto disegnare un albero come questo prima? Se sei sicuro di aver incontrato i tanti ostacoli che ho. Qualche consiglio? Finora ho passato un'intera giornata.
cosa stai cercando di fare? Non dovrebbe essere fatto in Microsoft Visio o qualcosa ?? – DrStrangeLove
Prendere un po 'di solutore Tetris ... – Dialecticus
@DrStrangeLove No, sto scrivendo una visualizzazione interattiva. – user1002358