AntV G6自定义节点(多边形+图片)

2024-02-01 08:10

本文主要是介绍AntV G6自定义节点(多边形+图片),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

要求:拓扑节点根据不同的设备类型显示不同的图标,且根据设备状态显示不同的背景色,鼠标点击选中节点还可高亮

效果图

  • 不同设备不同图标,不同状态不同背景色
    在这里插入图片描述

  • 鼠标点击选中节点高亮
    在这里插入图片描述

代码

// 默认节点背景色
const defaultNodeBgColor = '#169BFA'G6.registerNode('cust-node',{draw (cfg, group) {// bgColor自定义的节点背景色 icon自定义的节点图标const { bgColor, icon } = cfg// 外层包裹元素const shape = group.addShape('polygon', {attrs: {points: [[16, 0],[32, 9],[32, 26],[16, 35],[0, 26],[0, 9]],},name: 'node-wrapper'})// 背景色元素group.addShape('polygon', {attrs: {points: [[16, 2],[30, 10],[30, 25],[16, 33],[2, 25],[2, 10]],fill: bgColor || defaultNodeBgColor, // 填充背景色},name: 'node-bg'})// 除主体部分白色外背景色透明的图标group.addShape('image', {attrs: {x: 8,y: 9,width: 16,height: 16,img: icon, // 设置图标},name: 'node-icon'})// 非高亮节点的蒙层group.addShape('polygon', {attrs: {points: [[16, 0],[32, 9],[32, 26],[16, 35],[0, 26],[0, 9]],},name: 'node-mask'})return shape},update (cfg, node) {// 节点更新触发 isNodeActive是否选中const { bgColor, isNodeActive } = cfgconst group = node.getContainer() // 获取容器// 背景色元素填充色修改const bgShape = group.get('children')[1] // 获取形状bgShape.attr({ fill: bgColor || defaultNodeBgColor }) // 修改形状的属性// 蒙层元素填充色修改:高亮节点蒙层不填充,非高亮节点蒙层填充透明白色const maskShape = group.get('children')[3] // 获取形状maskShape.attr({ fill: isNodeActive ? '' : 'rgba(255, 255, 255, 0.8)' }) // 修改形状的属性}},'single-node'
)

这篇关于AntV G6自定义节点(多边形+图片)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/666630

相关文章

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

C++链表的虚拟头节点实现细节及注意事项

《C++链表的虚拟头节点实现细节及注意事项》虚拟头节点是链表操作中极为实用的设计技巧,它通过在链表真实头部前添加一个特殊节点,有效简化边界条件处理,:本文主要介绍C++链表的虚拟头节点实现细节及注... 目录C++链表虚拟头节点(Dummy Head)一、虚拟头节点的本质与核心作用1. 定义2. 核心价值二

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

一文详解Java Stream的sorted自定义排序

《一文详解JavaStream的sorted自定义排序》Javastream中的sorted方法是用于对流中的元素进行排序的方法,它可以接受一个comparator参数,用于指定排序规则,sorte... 目录一、sorted 操作的基础原理二、自定义排序的实现方式1. Comparator 接口的 Lam

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪