【Antv|【Antv G6】视图操作FitView-局部居中
功能概述:在当前一张许多节点的画布中,仅展示某些节点,其它的透明度为0(占位的,相当于css的opacity:0),并且在视口范围内居中它们(展示的那些)。
问题是fitView中是根据canvas画布大小来适应的,看了下源码,这地方改一下就能满足需求了:
- 循环所有节点,找到展示的节点,并把它的x轴坐标放入x轴数组中,把它的y轴坐标放y轴数组中;如果这两个数组有一个为空则结束
- 获得画布宽度=x轴最大值-x轴最小值 ——groupWidth
- 获得画布高度=y轴最大值-y轴最小值 ——groupHeight
- 之后的代码就直接copy就行哈哈,关键就改bbox的属性,把它改为展示画布的宽高。
文章图片
onlyOutOfViewPort:true || false//如果为true,代表画布没超出视口的会被放大居中
direction:'x' || 'y'|| 'both' // 以哪边方向的缩放比为准,如果是x轴,有可能上下两端会超出视图
ratioRule:'min' || 'max' // 如果direction是both,会根据x轴和y轴取最大值或最小值比较得到缩放比例
推荐阅读
- 【谣言】指针比数组速度快(指针比数组速度慢?)
- 业务架构摘录
- 【数据结构与算法】手撕红黑树
- kubenetes-常用命令
- 【算法】链表
- 【Python】Python基础知识【第一版】
- C语言重难点进阶|自定义类型详解(结构体+枚举+联合)【C进阶】
- 【C语言进阶】自定义类型详解(结构体+枚举+联合)
- 数据结构|七大常用排序
- 苹果手机不显示微软软黑的解决方案