图论画图神器——CS Academy

ouuan

2018-10-24 18:52:35

Personal

CS Academy是一个在线算法竞赛/算法学习网站,而其中的图论画图功能非常实用。它既可以帮助我们理解图论题的题意,对样例进行模拟,又有一定的娱乐性。 ## 初阶使用 我们主要使用这个网站的图论画图功能,网址是:https://csacademy.com/app/graph_editor/ 进入网站,我们会看到如下的界面: ![](https://i.loli.net/2018/10/24/5bd0475332078.jpg) 左边是数据输入区,右边则是图像。 数据输入接受三种格式: 1. `u`,创建一个编号为 $u$ 的点 2. `u v`,创建一条边 $(u,v)$(如果 $u$ 和/或 $v$ 还没有创建,则会创建) 3. `u v w`,创建一条边权为 $w$ 的边 $(u,v)$ 这三种格式是可以混用的。你甚至可以输入字符串而不是数字: ![](https://i.loli.net/2018/10/24/5bd04aa6c8165.jpg) 数据输入区上方可以更改图是有向还是无向。 图像的上方有三个按钮,可以转换点标号的方式。事实上第三个按钮是没有作用的,而前两个按钮分别为:编号从 $0$ 至 $n-1$;编号为从 $1$ 至 $n$。这两个操作都会改变数据输入区的内容,若要撤销修改可以在数据输入区内按Ctrl+Z. ## 进阶使用 注意到右端上方还有几个按钮。下面将分别进行讲解: ### Force 在这个模式下,节点之间有“力”的作用,因而会乱动(在节点较多时、拖拽节点时尤为明显)。不推荐在做题时使用Force模式,如果目的是看清这个图、在图上进行模拟,在其它模式下将图摆成一个好看的形状将会看得更加清楚。 ### Edit Draw、Edit、Delete其实都是编辑模式。在编辑模式下,节点是固定的(除法你自己用鼠标拖拽节点),不会乱动。 在Draw模式下,你可以单击空白处来添加一个节点,依次单击两个节点来添加一条边。 在Edit模式下,你可以单击一个节点来修改标签,单击一条边来修改边权。 在Delete模式下,你可以单击一个节点来删除该节点,单击一条边来删除这条边。 ### Config Config面板大约长这样: ![](https://i.loli.net/2018/10/24/5bd04ce32f4e7.jpg) Node radius:每个节点的大小。 Edge ideal length:之前说过,在Force模式中,节点之间是有“力”的,而Edge ideal length就是一条边上的两个点之间的“吸引程度”,两点间距离大于这个值便会产生“引力”,否则会产生“斥力”,就像分子之间一样。 下面的三个选项分别是节点的填充色、节点的外圈和标签颜色、边的颜色。 最后是三个命令: Fix all nodes/Unfix all nodes:固定/解除固定节点。固定的话节点就不会乱动,否则就是Force模式。 Arrange as tree:将图显示为这张图的dfs树并固定节点。 例: ![](https://i.loli.net/2018/10/24/5bd054f49fa17.jpg) ![](https://i.loli.net/2018/10/24/5bd054f47ac42.jpg) ## 娱乐功能 不知道大家有没有看过[膜你抄](https://www.bilibili.com/video/av8490731)。里面的这个画面就是用CS Academy制作的: ![](https://i.loli.net/2018/10/24/5bd04f5e5d801.jpg) 只要在数据输入区输入 $1$ ~ $200$ 就可以了。 ![](https://i.loli.net/2018/10/24/5bd05003cff7b.jpg) 通过更改Config、调整页面大小还可以得到各种各样的效果: ![](https://i.loli.net/2018/10/24/5bd051cd93bea.jpg) ![](https://i.loli.net/2018/10/24/5bd051cdbb3bb.jpg) ![](https://i.loli.net/2018/10/24/5bd051cea7fc0.jpg)