环形(圆形)布局:将所有节点沿一个圆周均匀分布。 支持按度排序或按自定义键排序以优化视觉表现 / 减少边交叉。
CircularLayout
01 Syntax
Microsoft.VisualBasic.Data.visualize.Network.Layouts.Circular.CircularLayout
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| LayoutNodes | 2 | 接受 CircularLayoutParameters 参数对象重载(保持旧函数签名兼容) |
| LayoutNodesWithCrossingOptimization | 1 | 环形布局 + 边数量最优化:使用启发式(贪心 2-opt 局部搜索)对圆形上节点顺序做 邻接权重交换,尽可能减少直连边在圆内穿越的长度与交叉。 适用于边数量较多(>100)且对交叉敏感的场合,速度较 LayoutNodes 慢。 |
03 Members
LayoutNodes(
NetworkGraph, Double, Double, Double, Boolean)将所有节点均匀排布在一个圆周上。
Parameters
| Name | Type | Description |
|---|---|---|
g | NetworkGraph | 网络图。 |
radius | Double | 圆半径(像素)。若未指定或传入 NaN,则按 sqrt(area/nodeCount) 自动推算。 |
cx | Double | 圆心 X 坐标,默认 500。 |
cy | Double | 圆心 Y 坐标,默认 500。 |
sortByDegree | Boolean | True 时按节点度升序排列(高度节点靠近 → 邻边更短,视觉更紧凑); False 时保持原有 vertex 遍历顺序。 |
Returns
布局完成后的网络图。
LayoutNodes(
NetworkGraph, CircularLayoutParameters)接受 CircularLayoutParameters 参数对象重载(保持旧函数签名兼容)
LayoutNodesWithCrossingOptimization(
NetworkGraph, Double, Double, Double, Int32)环形布局 + 边数量最优化:使用启发式(贪心 2-opt 局部搜索)对圆形上节点顺序做 邻接权重交换,尽可能减少直连边在圆内穿越的长度与交叉。 适用于边数量较多(>100)且对交叉敏感的场合,速度较 LayoutNodes 慢。
Parameters
| Name | Type | Description |
|---|---|---|
g | NetworkGraph | 网络图。 |
radius | Double | 圆半径(NaN → 自动推算)。 |
cx | Double | 圆心 X。 |
cy | Double | 圆心 Y。 |
maxSwaps | Int32 | 2-opt 局部搜索最大交换次数(默认 1000)。设 0 则跳过优化仅做按度排序。 |
Returns
布局完成后的网络图。