关于前端:Antv-G6视图操作FitView局部居中

性能概述:在以后一张许多节点的画布中,仅展现某些节点,其它的透明度为0(占位的,相当于css的opacity:0),并且在视口范畴内居中它们(展现的那些)。

问题是fitView中是依据canvas画布大小来适应的,看了下源码,这中央改一下就能满足需要了:

  1. 循环所有节点,找到展现的节点,并把它的x轴坐标放入x轴数组中,把它的y轴坐标放y轴数组中;如果这两个数组有一个为空则完结
  2. 取得画布宽度=x轴最大值-x轴最小值 ——groupWidth
  3. 取得画布高度=y轴最大值-y轴最小值 ——groupHeight
  4. 之后的代码就间接copy就行哈哈,要害就改bbox的属性,把它改为展现画布的宽高。

fitViewByRules函数中,接管3个参数:
onlyOutOfViewPort:true || false//如果为true,代表画布没超出视口的会被放大居中
direction:’x’ || ‘y’|| ‘both’ // 以哪边方向的缩放比为准,如果是x轴,有可能高低两端会超出视图
ratioRule:’min’ || ‘max’ // 如果direction是both,会依据x轴和y轴取最大值或最小值比拟失去缩放比例

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理