图论画图神器——CS Academy
ouuan
2018-10-24 18:52:35
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)