【发布时间】:2010-02-17 02:59:44
【问题描述】:
在制作图形时,我完全瘫痪了。如果没有充分探索视觉的对称性,我就很难理解发生了什么。我也是一个非常注重视觉的学习者,我喜欢简化我刚刚学到的东西并将它们画在纸上。
Graphviz 是一个很好的自动绘图工具,但它可能会更好。让我们从一个好的图的例子开始(而不是状态机)。没关系质量(它可以用更好的工具重新绘制)这个几乎是完美的,除了我会逆时针旋转 45 度以使对称性明显。然后,读者应该花更少的时间来弄清楚状态 q1 和 q2 的相似之处以及它们的不同之处。我认为有一种最好的方式来表示该图表,因为它旁边没有其他图形。
(来源:gallery.hd.org)
现在让我们看一个不太完美的描述:
(来源:softpedia.com)
这看起来像是 graphviz 会生成的东西。是的,边缘是光滑的,但是 GAAAAWWWD 这是不必要的混乱!它看起来像一张思维导图,而不是一张可供使用的成品图。我相信人眼渴望(不少于)对称。是的,等级制度等也是重要因素。
我很惊讶没有更好的算法可用。有些人根本不是视觉学习者;他们可以通过阅读符号来掌握抽象概念。不是我!
那么,我的问题是什么?那么,是否有更好的免费软件可用于绘制中小型图形?也许
谢谢!
让我知道如何改进这篇文章。
附:我花了 10 分钟在 dia 中画出一个足够相似的克隆。它仍然不完美,但制作起来很方便,因为一切都对齐网格(我错过了一些小细节,但不想重新上传)。 LR_0需要一个“Start--->”从上面传来,让用户更快掌握开始状态。
【问题讨论】:
-
你能用代码定义什么是“美”吗?您对没有更好的算法感到惊讶,但是在制作任意图时“更好”的定义并不完全明确:) 看起来您渴望对称,但您承认其他人可能更喜欢强调层次结构、平滑边缘等。
-
grahpviz 有很多选项可以更改布局、线条等(尽管很难从其文档中弄清楚事情是如何工作的)。你可以例如尝试将
rankdir=LR;添加到图表以更改布局 -
在第一个图中,
LR_2还通过SS(a)连接到LR_5,而在第二个图中,它通过S(A)连接到另一个名为LR_2的节点。
标签: graphviz graph-layout graph-drawing