【发布时间】:2015-02-06 03:36:59
【问题描述】:
我正在处理一个需要对象组的项目。我想在画布上绘制组之后向组添加一些东西。我把我想要完成的要点放在下面的 jsfiddle 中:http://jsfiddle.net/85x3hzx7/2/
首先,我画了一个网格来帮助可视化位置。我添加了以下行以使原点从左上角开始:
fabric.Object.prototype.originX = true; fabric.Object.prototype.originY = true;
这是库的创建者建议的一行,以便使用继承将每个对象的原点设置为左上角(请参阅:Canvas coordinates in Fabric.js have offset)。省略这行代码会得到一个时髦的结果。在 jsfiddle 中,我添加了多个代码块以尝试实现我的目标:
- 在代码块 1 中,我在一个组中添加一个 Rectangle 并将该组定位到 (100,100)。这按预期工作得很好:
- 在代码块 2 中,我定义了一个 Circle 并将其添加到组中。这导致了一些奇怪的定位和组尺寸的变化:
- 将圆设置为位置 (0,0) 会将其置于我认为是前一个边界框的中心,这对我来说没有多大意义,因为我的原点被定义为上/左:
在创建组后如何定位圆,使其位于矩形的左上角?这里可能存在错误,或者我没有掌握在组内定位的概念,以及向组中添加内容对位置/维度的影响。
【问题讨论】: