fabic如何将绘图原点移到画布中心

情况说明:

fabic默认绘图原点为left:0,top:0

后端给我的内容是按照x,y返回的,需要将坐标系移到fabic画布的中心位置,找了下网上合适的砖,想一句命令直接设置,结果没有。得!得自己来了。

不得吐槽一句,他母亲canvas这点就很有好呢,用 transform 一行代码即可实现--ctx.translate(canvasWidth / 2, canvasHeight / 2)。附赠canvas将绘制的原点移动到画布中心的示例代码,感兴趣的可以看下:

javascript 复制代码
const canvas = document.getElementById('yourCanvasID');  
const ctx = canvas.getContext('2d');  
  
// 获取画布的宽度和高度  
const canvasWidth = canvas.width;  
const canvasHeight = canvas.height;  
  
// 将绘制原点移动到画布中心  
ctx.translate(canvasWidth / 2, canvasHeight / 2);  
  
// 在新的原点处绘制一个矩形  
ctx.fillStyle = 'red';  
ctx.fillRect(-50, -50, 100, 100);

坐标系转移:

言归正传,咱绘制一下坐标系。

据此可得:

后端给出的(x,y)坐标,我可以根据(canvas.width/2 + x ,canvas.height/2 - y)来实现。

即为:left=canvas.width/2 +x ,top=canvas.height/2-y

同理我给后端可接受的(x,y),应该为(left-canvas.width/2 , canvas.height/2 - top )

反正利用我小学n年级的数学知识计算是这样,我去跟后端联调,验证完美性去了~~

相关推荐
桜吹雪14 分钟前
所有智能体架构(1):反思 (Reflection)
javascript·人工智能
lichenyang45316 分钟前
从鸿蒙 AI 聊天 Demo 学习 ArkUI V2:第一天上手记录
前端
进击的松鼠32 分钟前
OpenClaw 的五层架构设计与解析
前端·架构·agent
JavaGuide36 分钟前
Claude Code 新功能Agent View 发布:终于不用在一堆终端窗口里找 Agent 了!
前端·后端·agent
不简说38 分钟前
前端可视化打印设计器sv-print,一口气更新了30版
前端·源码·产品
颖火虫盟主38 分钟前
Claude Code Hook 系统详解与 Hello World 实操
前端·网络·数据库
JavaGuide1 小时前
Claude Code + BrowserAct,夯爆了!一句话让 AI 帮你操控浏览器。
前端·后端·ai编程
七十二時_阿川1 小时前
Electron WebContents 完全指南:页面渲染、导航控制与安全实战
前端·electron
用户11481867894841 小时前
Vue 开发者快速上手 Flutter(五) -状态管理路径
前端
七十二時_阿川1 小时前
Electron 主进程和渲染进程如何通信?这篇讲清楚了
前端·electron