Hei,
tarvitsen projektissani puun asettelu algoritmiä, joka laskee nodejen x- ja y-koordinaatit sijoitellen nodet järkevästi. Tormäsin googlatessa Bill Mill:n artikkeliin, jossa hän on pureskellut algoritmejä puun asetteluun kautta historian. Artikkelin lopussa on Buchheimin esittelemä algoritmi n-ary puiden asetteluun Pythonilla koodattuna. Kyseisestä koodista on täysiversio hänen GitHub-tilillään buchheim.py-tiedostossa.
Käänsin koodi Javascriptille ja sain sen toimimaan hyvin, käänsin sen myös rakentamaan puun vasemmalta oikealle. Törmäsin kuitenkin ongelmaan, kun tuli eteen tarve rivittää tekstiä, tuo algoritmi laskee jokaisen noden korkeudeksi 1, jonka takia nodet menevät osittain päällekkäin. Haluaisin saada lisättyä tuohon algoritmiin korkeus-muuttujan(Bill Mill:n tapauksessa leveys-muuttujan), jonka arvo olisi karkeasti
1 + (RivienMaara - 1) * 0.75
Mun englanninkielen taito on sen verran vajaavainen, etten ihan täysin ole vielä kyennyt ymmärtämään algoritmin toimintaa, ja siksi en ole itse löytänyt kohtia algoritmistä, joissa korkeus-muuttuja pitäisi ottaa huomioon. Pystyisikö joku auttamaan?
Olen kokeillut valmiita kirjastoja, jotka piirtävät puurakenteita varsin mallikkaasti, mutta erinäisistä syistä olen ne hylännyt.
Aihe on jo aika vanha, joten et voi enää vastata siihen.