You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Konva为打包圆可视化添加缩放功能(解决中心缩放重定位问题)

问题修复方案

重定位的计算逻辑需要以「点击的圆缩放后对齐舞台中心」为核心推导,正确推导逻辑如下:
组内元素最终在画布上的坐标计算公式为:
元素最终屏幕坐标 = 组偏移坐标 + 元素原始坐标 * 组缩放比例
我们的目标是让点击的圆最终屏幕坐标等于舞台中心坐标,反推即可得到组的正确偏移值。

修正后的核心代码

function zoom(circle) {
  // 缩放比例计算保持不变
  let scaleBy = root.data.konva.radius() / circle.radius()
  group.scale({x: scaleBy, y: scaleBy})
  
  // 重定位逻辑修正:用舞台中心减去 目标圆原始坐标*缩放比例
  let newX = width / 2 - circle.x() * scaleBy
  let newY = height / 2 - circle.y() * scaleBy
    
  group.position({x: newX, y: newY})
}

效果说明

修改后点击任意圆,该圆会自动居中显示在视口中央,缩放逻辑和原有逻辑保持一致。

内容的提问来源于stack exchange,提问作者Ivan Bacher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 01:54:00