gpt4 book ai didi

algorithm - 具有指定边长的图形的 Spring /静电绘图的实现

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:33:01 26 4
gpt4 key购买 nike

假设我有一些非平面图 $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}}
]

enter image description here

然后你可以通过单独改变箭头的波长来修饰它,这可以代表 Spring 中的不同张力并添加代表顶点的小圆盘等。这是核物理学中水平方案图的 SCSS ,但是我想这很接近你想要的。

关于algorithm - 具有指定边长的图形的 Spring /静电绘图的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5838247/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com