格子 Grid

阅读时间约 1 分钟

Grid 布局是将所有节点通过某种指定属性排序后,整齐地放置在网格上。

img
const graph = new F6.Graph({
  ...
  width: 1000,
  height: 600,
  layout: {
    type: 'grid',
    begin: [ 0, 0 ],          // 可选,
    preventOverlap: true,     // 可选,必须配合 nodeSize
    preventOverlapPdding: 20, // 可选
    nodeSize: 30,             // 可选
    condense: false,          // 可选
    rows: 5,                  // 可选
    cols: 5,                  // 可选
    sortBy: 'degree'          // 可选
    workerEnabled: true       // 可选,开启 web-worker
  }
});

layoutCfg.begin

类型: Array
示例:[ 0, 0 ]
默认值:[ 0, 0 ]
是否必须:false
说明:网格开始位置(左上角)

layoutCfg.preventOverlap

类型:Boolean
默认值:false
是否必须:false
说明:是否防止重叠,必须配合下面属性 nodeSize,只有设置了与当前图节点大小相同的 nodeSize 值,才能够进行节点重叠的碰撞检测

layoutCfg.nodeSize

类型: Number
默认值:30
是否必须:false
说明:节点大小(直径)。用于防止节点重叠时的碰撞检测

layoutCfg.preventOverlapPadding

类型:Number
默认值:10
是否必须:false
说明:避免重叠时节点的间距 paddingpreventOverlaptrue 时生效

layoutCfg.condense

类型: Boolean
默认值:false
是否必须:false
说明:为 false 时表示利用所有可用画布空间,为 true 时表示利用最小的画布空间

layoutCfg.rows

类型: Number
默认值:undefined
是否必须:false
说明:网格的行数,为 undefined 时算法根据节点数量、布局空间、cols(若指定)自动计算

layoutCfg.cols

类型: Number
默认值:undefined
是否必须:false
说明:网格的列数,为 undefined 时算法根据节点数量、布局空间、rows(若指定)自动计算

layoutCfg.sortBy

类型: String
默认值:undefined
是否必须:false
说明:指定排序的依据(节点属性名),数值越高则该节点被放置得越中心。若为 undefined,则会计算节点的度数,度数越高,节点将被放置得越中心

layoutCfg.workerEnabled

类型: Boolean
默认值: false
是否必须: false
说明: 是否启用 web-worker 以防布局计算时间过长阻塞页面交互