- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
假设我有一些非平面图 $G$,边长 $(r_1,...,r_N)\in R$,但我没有指定顶点坐标。我想在二维表面上绘制 $G$,方法是将边指定为一定长度的 Spring ,在顶点之间具有静电排斥,然后执行类似于模拟退火的操作。
Mathematica 似乎具有上述所有功能,但它不允许您指定边长。是否有任何软件,无论是否在公共(public)领域,都可以完成所有这些工作?我试过 Tulip 和 GraphViz。 Tulip 根本不允许您指定边长,而 Graphviz 在指定边长和为模拟退火步骤设置任何类型的参数方面的功能非常有限。
更新 - 我碰巧提前知道我的特定边长组有效!该图之前是在二维平面上绘制的,但我无法访问坐标。
我想我真的在寻找一个可以模拟二维球和 Spring 网络的程序包。分子动力学软件可以做到这一点,但开销巨大...
最佳答案
正如 Mark 所说,并非总能随心所欲。但是,我建议尝试 LevelScheme绘制看起来像 Spring 的波浪形箭头。这是一个例子:
<< "LevelScheme`"
pts = {{{0, 0}, {1, 1}}, {{0, 0}, {1, 1}}, {{1, 1}, {2, 0}}, {{2,
0}, {1, -1}}, {{1, -1}, {0, 0}}, {{0, 0}, {2, 0}}};
Figure[{
SetOptions[SchemeArrow, ArrowType -> SquiggleArrow],
SchemeArrow @@@ pts
},
PlotRange -> {{-0.1, 2.1}, {-1.1, 1.1}}
]
然后你可以通过单独改变箭头的波长来修饰它,这可以代表 Spring 中的不同张力并添加代表顶点的小圆盘等。这是核物理学中水平方案图的 SCSS ,但是我想这很接近你想要的。
关于algorithm - 具有指定边长的图形的 Spring /静电绘图的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5838247/
有没有办法设置networkx图中的边长度?例如,我有以下代码,设置第一条边长度=10,第二条边长度=1,但它们在实际图中具有相同的长度: >>> import matplotlib.pyplot a
我是一名优秀的程序员,十分优秀!