Tree layout algorithms more or less belong to two distinct categories. The .... placing the root of the tree in the center of the view (coordinates (0,0)), we call.
! "# &$ %('*),+.-0/21436587%89;:=/)43?5=@>% AB%=7DC0EF/2G8H0/2)3DI?G8J'K%8LM/2NOI?G Q P C0G8R SUT>V6WYX[Z]\_^a`cbedgfihkjlbnm0fo WYp2hUqcf4V2 rcT>suZXat6vxwgy?tDKzYp6p`rcmkhkf!j[qcfif{|{ebe{|fiV}h4v=T8
0be~BhUfiVo hU`xVimkf b|p`>vw6w6gy&V2{|fi`x!f6vx
chUV2`x!f 4&2g6?g?26?2¡??!¦£x§6g¨g¨ª6?©«g©6¬«c6(®¯ ]¡g¬g0¬°26¬g± ¢£ ¤xggc¥620g2B _¡g Z]`Kmk¼xbej[Vf,h4v½Bf;chkf!jlfi`?maV`¾V2{e¿6phkbnmk¼cÀFv4V{e{ef4q¾WYrc~x~xp{ef;hkbnmk>¼xhkÀf!fj v Á²´V2p{ehkh´³¶f!µ!V6mk·!¼xq0¸fKÇȹºq0fi·6hUs0»V!b|½jmkbej`x¿be`Èp mkÁ ¼x¿6bejf!`cÉxfif!hU{|Vq8{ÃBhkÊËppp4mk½Bf!qÂf!dgf,mlhkh4f!vBf!mkj!¼xÃYf¾ÄÅ¿6p6{ÆVVhk{¿6fp Á dmkV2¼chkbebefijFm]ÇMV{e¿p pÁ hkV2bnmk{|¼x¿ÀÌ phkf!~cjlmUpV{eberc`¯mkbep6VÍ`M~V2fi`mlmkqufihmk¼cq0fhUV!{e½f!`xbe`x¿2mk¿Î¼Î½p ¼cbe,mk¼c¼Èf}À´f4q0V2Ïg¿6ff!j!Ã>VÍÑmlhUf}Vqcjlf¼cpp2½ÒÐmk~¼xf,V2mm ½Bmkfi¼xf!f`°WÓmk¼crxf¾~x~cV{e`xf¿be>jrxhk{|mkf!V2pfh qf4?q0hUV4¿6½fbeb|`c`¿*{eV2be`x{|¿f!pV2hkh}bnmkhk¼xrcÀÔ`x`xcbehk`cp¿¾d?b|mkqcbeÀf!jYf6Á V;Ã>Ñc{ÆV2f`!Vp6h Àq0xhUV!V2½hkfbe`xmk¿ ¼xf½bnVmkfi¼jmkV2¼xm fiÀmkbeKpj,mYhkpbemk`xf,f[hkbÆ~V¾f!p`qmk¼xfibehj Vhk2f4{|¿V2p{&hkV2bnmkx¼xxÀÅ{ebe4½Vmkbnb|mkp¼F`>Ãm½Yp}½Bf!{e{n\_Ï0`cp4½`¾V{e¿6p2hkbemk¼cÀjap`VqxVmUV2\_jlfimË!p6Àbe`x¿ Á hkÁ p6ÀÕV Ö x× Ø[ÙÚ=ÛÜDÝ;Þ(Ù=ßkÛ[Ø à +./2)!I?) + I?N)i/2â8),/6ãU/Gc1!I1i+ÆCcG8ãC?äD+ÆGäåCc),EI?1,+.C0GªãU1,+.NÆNæ)i/2EI?+.G /Gc1i)iI0N[+.GèçlGäåCc),EI?1,+.C0G é +OãU:8I0NÆ+.Q!êá I?1,Q +.C0G£%ë á /+Æ)æãU: Q2Q /6ã,ãËEI?+.G=N.ì),/6ãU+OJ/ãË+.G¾1 á /Dí+OJ/Dã,â(Q / Q 1i),:8EC?äÓI0â=â=N.+ Q I1,+.C0G>ã äåC0)Yí á + Q!á 1 á /ì´I?)i/),/NÆ/-I?Gx1%$C0EF/aI?â=â=N.+ Q I1i+ÆCcG8ãîäåC Q :8ãÓC0G á +./2)!I?) Q!á + Q I0NcJ=I?1iI=56EI?ï+.G=H 1 á /:8ãU/C?ä 1i),//NOIgì0C0:=1iã I0GMC01,)i/2/),/â=),/6ãU/Gx1iI1i+ÆCcG8ãæäåCc) 1 á / -+OãU:>I?N>I0G8I?N.ìãU+OãBC?ä&ñ8N./;ã,ìãk1i/2Eã òÆó6ôgõ>C0)â á ìN.C0H0/G=+./ã òÆóõ>I0),/EI0G8J=I1iC0)iì´1iC),/2ö8/ Q 1 1 á /´ãU1,)i: Q 1i:=)i/*C0äÓ1 á /´J=I?1iIK:=G8J/) ãk1i:8Jìc%8ëî)i/2/})i/2â=)i/ã,/2Gx1!I1,+.C0G>ã Q I?Gãk1i+ÆN.N£I1,/DãU/6I?) C?ä 1 á / G8CQ J=/ã[I0G8JKNÆ+.G=ïã%cë á +Oã[I0Q â=â=)iCcI Q!á Eá I?ï0/6ãã,/2G8ã,/í á /2GF1 á /1!I0ã,ï Q CcG8J: Q 1,/6JFCc+ÆGx1 +.GÍ1 á /G=/21kíËCc),ï&5äåC0)+.G8ãU1iI0G Q /c5=I?NÆ1 á Cc:=H á 1 á / :8ãU/)Ë+OãaC?ú&/2)i/JÍI +./2)!I?) + I?N>-+Æ/íÒC?äîG8C0G +Æ/)iI0) + I0N>J=I?1iI8%xë /J+Oã,â=N.IgìFC0äÓI1i),// 1 á /GÍEI?ïc/ãa+Æ1æâ(Ccá ãiã,+ÆãU+Oãk1i/2Gx1,N.ì;â(Ccã,+Æ1,+.C0G=/6JI1î1 á / Q /2Gx1,/)îC?ä1 á /Ëã Q )i/2/G£%ë á /[-x+Oã,:8I?Nc+ÆGäåCc),EI?1,+.C0G ãU:=â8â>Cc)U1i/JÎCxãU/6JÎJJ)!IgC0íG=+./ËG=H8+.ãÓ% 1 á / Q CxCc)iJ=+ÆG8I?1,/6ã á á Q á Y
c2dfe
Z[#\
g'h@ijlkmnmo7h@pqhsrtm uvxwv+y7nmoz@vxj{h@|o7mofhspl|
ÿ°/}:8ã,/Iã,: F÷ÍJ/â1 á ñ8)!ãk1 ã,/I?) Q!á â=)iC Q /6J:=)i/;1iCFIcã,ã,+.H0G=/6JF1 á /)i/2NOI1i+Æ-c/;â(Ccã,+|1i+ÆCcG~} V C?ä¶1 á / Q /Gx1,/2)ËC?ä¶1 á /;/G Q N.Ccã,+ÆG8H Q +.) Q NÆ/;),/N.I?1,+.-0/1iC',.21435*6()&þ7.4%xçäîC0G8/ Q CcG8ãU+OJ/)iã1 á I?1 /I Q!á ã,:=ã*I0NÆHcC0)i+|1 á E ía/KCcNÆã /*íaJ/2/ G=C0I?1,G/6~J C0
EFV %â=Ë:1iI /Q!áu1 Q /´/2Gxâ>1,Cx/ãU)[+Æ1,C0+.älC0G
V á IgC?-0äB/D1 I´/ â(Cc/ã,Gc+|1i1i+Æ/2Cc) G9C0} ä{V
),/N.)iI?/21,NO+.I-01i/+Æ-c1i/*C'1,,C.21143/5*6()/2&Gxþ7.1,/4) % C?ä2á
´ VÔBQ6Õ 7Q Ö UVX Q %ËI Q!á G=CJá /". á Ig-0/I}â(CcV ã,+|1i+ÆCcG£á 5× Q V 5cI?G8JFI}I?N0â(Ccã,+Æ1,+.C0G´C0ä8IG=CJ/[+OãÓC0CxãU+Æ1,+.C0GÎC?äIKG=CJ/D.ÈI?G8JÙØ-Ú 1Q á /}ñ8G>I?N£â(Ccã,+|1i+ÆCcGÍá C0äÓ1 á /1 I?Ò G8H0+.:=ãDNOI?C0)´Gã,1 / Q /1,C0JÎJ)!1 Igí:8+ÆãDG8HíË/ C?"ä I?,GM.214J=3)i5Ig*6í ()&I¾7þ .N.+ÆG8+Æ/1 á Q V /21kíË//2xG á Øl VÔBQ6Õ 7 Ö UVXá I0G8LJ V Ò V % á Q -/.10324.65 798;: -/.10=?:
@A
ancestor(n)
ancestor(n)
IJC JC JI IC JI JIJI
POP
MNNM O
δ
δ n
RQR Q
GGC HC H HGGH
F
F EC ECEFEE EC
n δ
KLLK
Rotation
D
DBD BC BC BCBB
δ T SST βn bend Enclosing circle center Enclosing circle
µ½¶· c2d®c
» ÷ » zYpp2hUqcbe`Vmkf!jËÄËjljlbe¿6`cÀf!`m4Ã
U2jln%vnplÑWVofivg0h@ij¡y7vX2omY
θn
ë / 1,+.EF/ C0EFâ=N./÷+|1kì*C?ä1 /=a:=ã2%8ð8C0);1 á /KãUâ8I Q / Q C0EFâ=N./÷+|1kìc5=1 á /I0NÆHcC0)i+|1 á E )i/ùx:=+.),/6ãæ1,CÍãk1iC0)i/}ñ8-0/´-I0NÆ:=/6ãäåCc) /I Q!á G=CJ/I?G>Ju1 á :8ã+Æ1 +.ããU1,)!I?+.H á 1UäåCc),íæI?)!JF1 á I1 +Æ1 +.ãæN.+.G=/I0)+ÆGã,â8I Q /0% °=Û >!BÚ8#ß $xÛ[>Ø $ çlG´1 á +.ãBã,/ Q 1i+ÆCcG£56íË/ Q CcEKâ>I?)i/ 1 á /a)i/ã,:=N|1!ãYC0CxãU/6Já ãîI?CcJ¾G8ãk1 1!á I?/Gxãk1a1!äåI?C0G8)ËJ=1 I0)i/6JÍãU/J/2I?-N.H0+OICc1i),+Æ+ÆCc1 GuEF+OãËãaN.I?CG>íJ%ÿ«1 /I1aQ I?1 G /}Q )!C0I0G>JãU+O+OI?JN&/2)aI?N.1 H0á CcI),1æ+Æ1 1 á E / á â=),C-+OJ/ãæIKá 1,Cc/2)iG8+.J=ê2/ãÓãB1,C}I*11kì/ â(/G=CC?ä&J/6G=ãBC1J/0I?501Ë1 á I?/ )i/æá NÆ+Æ/6H Igá -0â(/6ã /I0I?ïG8JKN.C í Q I1i//),J/1,ã,C}+Æ