searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

antv/g6中绘制带边框的图像节点

2023-09-26 07:26:25
382
0

渲染图片节点

  • node节点定义

    antv/g6中内置了image节点进行图片的渲染,代码如下:

const data= {
      // 节点
      nodes: [
        {
            id: '1',
            type: 'image',
            img: Url,//图片地址
            size: [50, 50],
      },
       {
            id: '2',
            type: 'image',
            img: Url,
            size: [50, 50],
      }
      ],
      // 边
      edges: [
        {
          target:'1',
          source:'2'
        }
       ],
};
  • 实现效果

自定义图片节点

  • 自定义节点

    antv/g6中内置的image类型无法实现带边框的功能,需要我们自定义图片节点。

    在自定义的图片节点中,定义两个shape,rect和image,rect用来展示边框,image用来展示图片,代码如下:

 G6.registerNode(
        'img',
        {
          draw: (cfg, group) => {
            let size = cfg.size
            const nodeSizeX = size[0]
            const nodeSizeY = size[1]
            let offsetX = -nodeSizeX / 2
            let offsetY = -nodeSizeY / 2
            const borderSizeX = size[0] + 2
            const borderSizeY = size[1] + 2
            let borderOffsetX = -borderSizeX / 2
            let borderOffsetY = -borderSizeY / 2
            group.addShape('rect', {
              draggable: true,
              attrs: {
                x: borderOffsetX,
                y: borderOffsetY,
                width: borderSizeX,
                height: borderSizeY,
                stroke: '#b88230',
                lineWidth: 1,
              },
            })
            const shape = group.addShape('image', {
              draggable: true,
              attrs: {
                x: offsetX,
                y: offsetY,
                width: nodeSizeX,
                height: nodeSizeY,
                img: cfg.img,
              },
            })
            return shape
          },
        },
        'single-node'
      )
  • 定义node节点数据
const data= {
      // 节点
      nodes: [
        {
            id: '1',
            type: 'img',
            img: Url,//图片地址
            size: [50, 50],
      },
       {
            id: '2',
            type: 'img',
            img: Url,
            size: [50, 50],
      }
      ],
      // 边
      edges: [
        {
          target:'1',
          source:'2'
        }
       ],
};
  • 实现效果

0条评论
0 / 1000
h****n
2文章数
0粉丝数
h****n
2 文章 | 0 粉丝
h****n
2文章数
0粉丝数
h****n
2 文章 | 0 粉丝
原创

antv/g6中绘制带边框的图像节点

2023-09-26 07:26:25
382
0

渲染图片节点

  • node节点定义

    antv/g6中内置了image节点进行图片的渲染,代码如下:

const data= {
      // 节点
      nodes: [
        {
            id: '1',
            type: 'image',
            img: Url,//图片地址
            size: [50, 50],
      },
       {
            id: '2',
            type: 'image',
            img: Url,
            size: [50, 50],
      }
      ],
      // 边
      edges: [
        {
          target:'1',
          source:'2'
        }
       ],
};
  • 实现效果

自定义图片节点

  • 自定义节点

    antv/g6中内置的image类型无法实现带边框的功能,需要我们自定义图片节点。

    在自定义的图片节点中,定义两个shape,rect和image,rect用来展示边框,image用来展示图片,代码如下:

 G6.registerNode(
        'img',
        {
          draw: (cfg, group) => {
            let size = cfg.size
            const nodeSizeX = size[0]
            const nodeSizeY = size[1]
            let offsetX = -nodeSizeX / 2
            let offsetY = -nodeSizeY / 2
            const borderSizeX = size[0] + 2
            const borderSizeY = size[1] + 2
            let borderOffsetX = -borderSizeX / 2
            let borderOffsetY = -borderSizeY / 2
            group.addShape('rect', {
              draggable: true,
              attrs: {
                x: borderOffsetX,
                y: borderOffsetY,
                width: borderSizeX,
                height: borderSizeY,
                stroke: '#b88230',
                lineWidth: 1,
              },
            })
            const shape = group.addShape('image', {
              draggable: true,
              attrs: {
                x: offsetX,
                y: offsetY,
                width: nodeSizeX,
                height: nodeSizeY,
                img: cfg.img,
              },
            })
            return shape
          },
        },
        'single-node'
      )
  • 定义node节点数据
const data= {
      // 节点
      nodes: [
        {
            id: '1',
            type: 'img',
            img: Url,//图片地址
            size: [50, 50],
      },
       {
            id: '2',
            type: 'img',
            img: Url,
            size: [50, 50],
      }
      ],
      // 边
      edges: [
        {
          target:'1',
          source:'2'
        }
       ],
};
  • 实现效果

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0