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

Canvas缩放平移后如何获取矩形的新坐标?

Canvas缩放后自动获取矩形新起始坐标的问题

我在Canvas中绘制了矩形,支持用户通过鼠标滚轮在光标位置进行缩放操作,对应的TypeScript代码如下:

this.context?.clearRect(
      0,
      0,
      this.width * this.CELL_SIZE,
      this.height * this.CELL_SIZE
    );
    if (event.deltaY == -100) {
      this.context?.translate(event.offsetX, event.offsetY);
      this.context?.scale(1.05, 1.05);
      this.context?.translate(-event.offsetX, -event.offsetY);
    } else if (event.deltaY == 100) {
      this.context?.translate(event.offsetX, event.offsetY);
      this.context?.scale(0.95, 0.95);
      this.context?.translate(-event.offsetX, -event.offsetY);
    }
    this.draw_Grid();

问题

对Canvas上下文(context)执行缩放和平移操作后,矩形的位置会发生变化,我需要自动获取该矩形的新起始x、y坐标(即矩形到Canvas边框的距离),且不需要依赖鼠标移动事件来实现。

我已经做了大量调研,但没找到合适的解决方案。之前了解过通过鼠标移动事件检测距离的方法,但不符合我的需求。

箭头标注的距离(矩形到Canvas边框的距离)

欢迎提供建议或解决方案,谢谢!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 05:33:32