自定義節點
注冊 -- registerNode
我們通過以下接口往 G6 全局注冊節點:
// 注冊節點 G6.registerNode(name, { // 繪制 draw(item) { return keyShape }, // 獲取錨點 anchor: array || object || callback }, extendShape);
繪制 -- draw
draw
是圖項最終繪制的接口,決定了一個圖項最終畫成什么樣。它是 G6 中拓展圖形的最小接口,例如:
const data = { "nodes": [ { "shape": "customNode", "id": "node1", "x": 50, "y": 100 }, { "shape": "customNode", "id": "node2", "x": 250, "y": 100 } ], }; G6.registerNode('customNode', { draw(item){ const group = item.getGraphicGroup(); const model = item.getModel(); group.addShape('text', { attrs: { x: 0, y: 0, fill: '#333', text: '我是一個自定義節點,\n有下面那個方形和我自己組成' } }); group.addShape('text', { attrs: { x: 0, y: 0, fill: '#333', text: ' ('+model.x+', '+model.y+') \n 原點是組的圖坐標', textBaseline: 'top' } }); group.addShape('circle', { attrs: { x: 0, y: 0, r: 4, fill: 'blue' } }); return group.addShape('rect', { attrs: { x: 0, y: 0,