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年级的数学知识计算是这样,我去跟后端联调,验证完美性去了~~

相关推荐
喝拿铁写前端13 小时前
一套面向 Web、H5、小程序与 Flutter 的多端一致性技术方案
前端·架构
yaaakaaang13 小时前
(一)前端,如此简单!---下载Nginx
前端·nginx
牛奶13 小时前
为什么全国人民都能秒开同一个视频?
前端·http·cdn
KongHen0214 小时前
uniapp-x实现自定义tabbar
前端·javascript·uni-app·unix
数据潜水员14 小时前
三层统计最小力度的四种方法
javascript·vue.js
汪子熙14 小时前
TS2320 错误的本质、触发场景与在 Angular / RxJS 项目中的系统化应对
前端·javascript·angular.js
我命由我1234514 小时前
React - BrowserRouter 与 HashRouter、push 模式与 replace 模式、编程式导航、withRouter
开发语言·前端·javascript·react.js·前端框架·html·ecmascript
Younglina14 小时前
用AI全自动生成连环画?我试了,效果惊艳!
前端·ai编程·claude
Devin_chen14 小时前
ES6 Class 渐进式详解
前端·javascript
小番茄夫斯基14 小时前
前端开发的过程中,需要mock 数据,但是走的原来的接口,要怎么做
前端·javascript