javascript - FabricJS 4.4 新手,寻找布局一组对象的最佳方式
问题描述
我对 FabricJS (4.4.0) 很陌生,我希望以“正确”的方式做事,所以我正在寻求建议:
想象一下,我正在编写一个 JS 函数createHouse(options)
,它接受一堆选项并返回一个fabric.Group
简单的房子图片,其中选项给出了房子实际布局的各个方面:前门位置、楼层数、烟囱、等等例如:
let myHouse = createHouse({ x:200, y:100,
color:'blue', floors:2, width:100, labelParts:true,
stairs:true, garage:false, chimney:true, doorSide:'left', fence:false);
fabricCanvas.add(myHouse);
我想要调用者提供的任何 x,y 坐标来指定房屋前门的门把手将放置在哪里——即,我不希望它位于房屋组的中心或左上角。如果我孤立地考虑这个房屋组,我会将门把手视为原点坐标,房屋的其余部分在门把手的上方、下方、左侧和右侧延伸。我希望我的代码从门把手开始,然后从那里“向外建造房子”——所以我不知道这个小组实际上会有多“大”。
让事情变得更复杂,如果labelParts
是真的,那么房子将被指向门、烟囱等的标签包围——这些也会使群体变大,数量不详。
所以,问题:
您将如何定义关于 originX、originY 等的组和子对象?
有没有一种方法可以让我的房子坐标系在我定义形状时围绕 (0,0) 的门把手旋转,其中最终转换到所需的 (x,y) 门把手位置是在将组返回给调用者之前完成的? 这会由主 House Group 内的 Group 来完成吗?
由于文本的长度,可选的标签簇可以使整体 Group 尺寸不可预测,但我不想考虑这一点:我只想让调用者指定门把手位置,并从那里向外构建。那可能吗?
提前致谢!
解决方案
推荐阅读
- pandas - Pandas merge join where key can be null
- python - 仅使用矢量化操作突出显示多个零矩阵上的特定坐标
- python - MongoDB match aggregation where value equals multiple search items
- python - 使用python时如何向xml添加附加属性
- php - "laravel Migration Foreign key constraint is incorrectly formed"
- android - nativescript - Activity restarts rather than resumes
- ios - 将长数转换为 UInt64 始终返回 nil
- java - How to unit test a kafka stream application that uses session window
- python - sqlcontext.sqlfield id 中的编码错误:IntegerType 不能接受类型中的对象 u'1'
- screen-readers - 屏幕阅读器读取列名数百次