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

相关推荐
biubiuibiu7 分钟前
JavaScript核心概念深度解析:位运算与短路逻辑
开发语言·javascript·ecmascript
fengfuyao98510 分钟前
一个改进的MATLAB CVA(Change Vector Analysis)变化检测程序
前端·算法·matlab
yuhaiqiang43 分钟前
为什么这道初中数学题击溃了所有 AI
前端·后端·面试
djk88881 小时前
支持手机屏幕的layui后台html模板
前端·html·layui
紫_龙1 小时前
最新版vue3+TypeScript开发入门到实战教程之watch详解
前端·javascript·typescript
okra-1 小时前
Axure RP 10 进阶指南:从全局变量到JavaScript语法,打造高效原型设计!
javascript·axure·photoshop
默默学前端1 小时前
ES6模板语法与字符串处理详解
前端·ecmascript·es6
lxh01131 小时前
记忆函数 II 题解
前端·javascript
我不吃饼干2 小时前
TypeScript 类型体操练习笔记(三)
前端·typescript
华仔啊2 小时前
除了防抖和节流,还有哪些 JS 性能优化手段?
前端·javascript·vue.js