Bubble Tree Drawing Algorithm S. Grivet1, D. Auber1 ... - Tulip - LaBRI

27 downloads 13559 Views 570KB Size Report
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>suZ‡Xat6vxˆ‰wgˆŠy?tDˆKzYp6p`‹rcmkhkf!j[Œqcfif{|{ebe{|fiV}h4v=T8…0be~BhUfiVo hU`xV„imkf b|p`>vw6w€6gyƒ‚&V2{|fi`x„!f6vx…chUV2`x„!f Ž4‹‘’&“”2•g–‹Ž6—?˜™g—?‘2š‹Ž6›?˜2¡?œ?!¦£x“‡Ž§6žg¨g™‹¨ªŽ6—?©«Ÿ‹’g©6¬«–‹—c­6‘(®¯ ]¡g¬g—0¬°˜2™6¬g•‹± ¢£ ¤xŽg’gžc¥62ž0Ÿg’‹‘2—‹B _¡g— Z]`Kmk¼xbej[ŒVŒf,h4v½Bf;Œchkf!jlfi`?maV`¾V2{e¿6phkbnmk¼cÀFv„4V{e{ef4q¾WYrc~x~xp{ef;hkbnmk‚>¼xhkÀƒf!fj v Á²´V2p{ehkh´³¶f!µ!V6mk·!¼xq0¸fKÇȹºq0fi·6hUs0»V!b|½j”mkbej`x¿be`Èp mkÁ ¼x¿6bejf!`cÉxfif!hU{|Vq8{ÃBhkÊËp‹pp4mk½Bf!qÂf!dgf,mlhkh4f!vBf!mkj!¼xÃYf¾ÄÅ¿6p6{ÆVVhk{¿6f‰p Á dmkV2¼chkbebefijFm]ÇMV{e¿p pÁ hkV2bnmk{|¼x¿ÀÌ phkf!~cjlmUpV{eberc`¯mkbep6VÍ`M~V2fi`mlmkqufihmk¼cq0fƒhUV!{e½f!`xbe`x¿2mk¿Î¼Î½p ¼cbe„,mk¼c¼Èf}À´f4q0V2Ïg¿6f‰f!j!Ã>VÍÑmlhUf}Vqcjlf‰¼cpp2½ÒÐ mk~¼xf,V2m‡m ½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`xŒcbehk`cp¿¾d?b|mkqcbeÀƒf!jYf6Á V;Ã>ÑŒc{ÆV2f`„!Vp6h Àƒq0ŒxhUV!V2½hkfƒbe`xmk¿ ¼xf½bnVmkfi¼j”mkV2¼xm fiÀƒmkbe„Kpj”„,mYhkpbemk`xf,f[hkbÆ~V¾f!p`qƒmkŒ¼xfibehj Vhk2f4{|¿V2p{&hkV2bnmkŒx¼xŒxÀÅ{ebe„4½Vmkbnb|mkp¼F`>Ãm‡½Yp}½Bf!{e{n\_Ï0`cp4½`¾V{e¿6p2hkbemk¼cÀƒjap`‰VƒqxVmUV2\_jlfim˄!p6Àƒbe`x¿ Á hkÁ p6ÀÕV Ö x× Ø[ٍÚ=ÛÜDÝ;Þ(Ù=ßkÛ[Ø à +./2)!I?) + I?N)i/2â8),/6ãU/Gc1!I‹1i+ÆCcG8ãƒC?äD+ÆGäåCc),E‰I?1,+.C0GªãU1,+.NÆNæ)i/2E‰I?+.G /Gc1i)iI0N[+.GèçlGäåCc),E‰I?1,+.C0G é +OãU:8I0NÆ+.Q!êá I?1,Q +.C0G£%ë á /+Æ)æãU: Q2Q /6ã,ãËE‰I?+.G=N.ì‰),/6ãU+OJ/ãË+.G¾1 á /Dí+OJ/Dã,â(Q / Q 1i),:8EŠC?äÓI0â=â=N.+ Q I‹1,+.C0G>ã äåC0)Yí á + Q!á 1 á /ì´I?)i/),/NÆ/-‹I?Gx1%‹$C0EF/aI?â=â=N.+ Q I‹1i+ÆCcG8ãîäåC Q :8ãÓC0G á +./2)!I?) Q!á + Q I0NcJ=I?1iI=56E‰I?ï+.G=H 1 á /:8ãU/C?ä 1i),//NOIgì0C0:=1iã I0GMC01,)i/2/),/â=),/6ãU/Gx1iI‹1i+ÆCcG8ãæäåCc) 1 á / -+OãU:>I?N>I0G8I?N.ìãU+OãBC?ä&ñ8N./;ã,ìãk1i/2E‰ã òÆó6ôgõ>C0)â á ìN.C0H0/G=+./ã òÆóõ>I0),/E‰I0G8J=I‹1iC0)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!I‹1,+.C0G>ã Q I?Gãk1i+ÆN.N£I‹1,/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äÓIƒ1i),// 1 á /GÍE‰I?ïc/ãa+Æ1æâ(Ccá ãiã,+ÆãU+Oãk1i/2Gx1,N.ì;â(Ccã,+Æ1,+.C0G=/6JƒI‹1î1 á / Q /2Gx1,/)îC?ä1 á /Ëã Q )i/2/G£%ë á /[-x+Oã,:8I?Nc+ÆGäåCc),E‰I?1,+.C0G ãU:=â8â>Cc)U1i/JÎCxãU/6JÎJJƒ)!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/2NOI‹1i+Æ-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 ‰ Ö U’VX Q %ËI Q!á G=CJá /". á Ig-0/I}â(CcV ã,+|1i+ÆCcG£á 5× Q V 5cI?G8JFI}I?N0â(Ccã,+Æ1,+.C0G´C0ä8IG=CJ/[+OãÓC0CxãU+Æ1,+.C0GÎC?äIKG=CJ/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‰ Ö U’VXá 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

» ÷ » zYp‹p2hUqcbe`Vmkf!jËÄËjljlbe¿6`cÀƒf!`‹m4Ã

U2jln%€v•nplÑWVofiƒv•g0h@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=CJ/ƒI?G>Ju1 á :8ã+Æ1 +.ããU1,)!I?+.H á 1UäåCc),íæI?)!JF1 á I‹1 +Æ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+OI‹Cc1i),+Æ+ÆCc1 GuEF+OãËãaN.I?C‹G>íƒJ‰%ÿ«1 /I‹1aQ I?1 G /}Q )!C0I0G>JãU+O+OI?JN&/2)aI?N.1 H0á CcI‹),1æ+Æ1 1 á E / á â=),C‹-+OJ/ãæIKá 1,Cc/2)iG8+.J=ê2/ãÓãB1,C}I*11kì/ â(/G=CC?ä&J/6G=ãBC1J/0I?501Ë1 á I?/ )i/æá NÆ+Æ/6H Igá -0â(/6ã /I0I?ïG8JKN.C í Q I‹1i//),J/1,ã,C}+Æ