{"id":26,"date":"2009-03-31T13:26:39","date_gmt":"2009-03-31T20:26:39","guid":{"rendered":"http:\/\/domemtech.com\/?p=26"},"modified":"2010-04-15T09:21:52","modified_gmt":"2010-04-15T16:21:52","slug":"tree-graph-drawing","status":"publish","type":"post","link":"http:\/\/165.227.223.229\/index.php\/2009\/03\/31\/tree-graph-drawing\/","title":{"rendered":"Tree graph drawing"},"content":{"rendered":"<p>Finally, I seem to be making some headway into graph drawing.\u00c2\u00a0 Over ten years ago, I had a similar problem.\u00c2\u00a0 In 1999, I worked for a company that sold a UML modeling tool, but I did not like the way it worked.\u00c2\u00a0 I tried to convince management that it needed changes to make it more useful,\u00c2\u00a0 but they brushed me off. So, I decided to try to write a UML modeling tool on my own.\u00c2\u00a0\u00c2\u00a0 Moreover, I wanted to expand my knowledge of computer science to include graph drawing, which is the field in computer science that tries to find two- or three-dimensional representations for graphs.\u00c2\u00a0\u00c2\u00a0 Unfortunately, I never succeeded in writing the tool at that time. I did not have enough time to learn graph\u00c2\u00a0 drawing because of a job change.\u00c2\u00a0 I spent several weeks trying to learn the subject,\u00c2\u00a0 but I was not able to grasp even the most basic algorithms.<br \/>\n<!--more--><\/p>\n<p>Why was it hard to understand for me?\u00c2\u00a0 One problem was that I did not have access to the original papers on the subject. Instead, the only resource I had was\u00c2\u00a0 a textbook on the subject. In 1998, Prentice Hall published the only book on graph drawing that I could find (Di Battista, G., Eades, P., Tamassia, R. and Tollis, I.\u00c2\u00a0 Graph drawing: algorithms for the visualization of graphs. Prentice Hall PTR Upper Saddle River, NJ, USA, 1998).\u00c2\u00a0 Although it contains an excellent list of references, in itself it was unsuitable for learning graph drawing.\u00c2\u00a0 Unfortunately, most of the information in the book assumes prior knowledge of graph drawing and graph theory. \u00c2\u00a0 While I have had graduate-level classes in graph theory, I had no exposure to graph drawing.\u00c2\u00a0 I could not understand any of the algorithms in the book because the descriptions lacked sufficient detail in order\u00c2\u00a0 to translate them into an implementation.<\/p>\n<p>But, I finally tracked down some of the original papers on the subject, and I now understand some hierarchy layout for rooted trees.\u00c2\u00a0 Several of the papers I have read include:<\/p>\n<p>Bloesch, A. Aesthetic layout of generalized trees. Software\u00e2\u20ac\u201dPractice &amp; Experience, 23, 8 1993), 817-827.<\/p>\n<p>Buchheim, C., Junger, M. and Leipert, S. Drawing rooted trees in linear time. SOFTWARE PRACTICE AND EXPERIENCE, 36, 6 2006), 651.<\/p>\n<p>Reingold, E. and Tilford, J. Tidier Drawings of Trees. Transactions on Software Engineering1981), 223-228.<\/p>\n<p>Walker II, J. A Node-positioning Algorithm for General Trees. Software &#8211; Practice and Experience, 20, 7 1990), 685-705.<\/p>\n<p>I have a Silverlight implementation of these algorithms at <a href=\"http:\/\/domemtech.com\/trees\/index.html\">http:\/\/domemtech.com\/trees\/index.html<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Finally, I seem to be making some headway into graph drawing.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[],"tags":[],"_links":{"self":[{"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/posts\/26"}],"collection":[{"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/comments?post=26"}],"version-history":[{"count":0,"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/posts\/26\/revisions"}],"wp:attachment":[{"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/media?parent=26"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/categories?post=26"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/165.227.223.229\/index.php\/wp-json\/wp\/v2\/tags?post=26"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}