fabric.js 中originX originY center设置问题

在最开始一直对fabric中的originX和originY很迷,设置center属性是怎么的一个中心对齐方式,为什么一个组里, 有一个设置了center,其他的都会连带呢?

于是自己就进行代表探索

javascript 复制代码
 // 左侧组:只有蓝色圆设置center origin
var circle_left = new this.$fabric.Circle({
  radius: 80,
  fill: 'pink',
});
var circle1_left = new this.$fabric.Circle({
  radius: 60,
  fill: 'blue',
  originX: 'center',  // 只有这个设置了center
  originY: 'center',
});
var text_left = new this.$fabric.Text('蓝圆center', {
  fontSize: 16,
});

var group_left = new this.$fabric.Group([circle_left, circle1_left, text_left], {
  left: 150,
  top: 150,
});
this.canvas.add(group_left);

在组当中是这样的效果

最形象的解释是:
1. 默认对象(左上角对齐):

  • 就像把一本书的左上角贴在桌子的左上角
  • 书的其他部分自然延伸到右边和下面

2. 设置了center的对象(中心点对齐):

  • 就像把一本书的中心点贴在桌子的左上角
  • 书的左上角就会跑到桌子的外面(左上方向)


    个人认为,第一个元素设置了center,其余元素都会以这个center元素为准,之后的元素设置center都会把圆心向最先的center元素中心对齐。
相关推荐
古夕2 分钟前
地址变了,页面是空的:一次 Vue Router 菜单切换复盘
前端·vue.js
JavaGuide3 分钟前
推荐一个好用 DeepSeek Harness 插件,直接把 Agent 上下文给可视化了!
前端·后端
数据掘金10 分钟前
白屏故障定位:从资源请求到路由渲染的排查顺序
前端
程序员Sunday14 分钟前
ES Module 和 CommonJS 有什么区别?循环依赖时会发生什么?
前端·javascript·面试
玲珑意21 分钟前
Vue 3 + DAG拓扑排序 + SSE流式人机协同:现代AI工作流编排系统的工程化实践
前端
三十而立洋25 分钟前
TypeScript 7.0 深度解析:新特性、Go 原生编译器及与 TypeScript 6.0 的区别
前端·typescript·前端工程化
编程之道27 分钟前
从VUE2到VUE3学习过程遇到的一些困惑
前端
用户8175952201328 分钟前
QNAP NAS 搭建个人网站实战
前端
梦里寻码30 分钟前
给 AI Agent 搭围栏:Monorepo 是被低估的 Agent 基础设施
前端·后端·github
异彩32 分钟前
一个纯前端的 Chrome 插件:不搭代理,也能把接口返回编圆
前端·chrome·mockito