Javascript fabric.js基于左上角的位置循环对象
嗨,我有一个画布上放置了多个图像,我想从左上角的位置和所有的方式通过图像循环Javascript fabric.js基于左上角的位置循环对象,javascript,fabricjs,Javascript,Fabricjs,嗨,我有一个画布上放置了多个图像,我想从左上角的位置和所有的方式通过图像循环 Lets say i have 10 images placed on canvas [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] I have changed position of some of the images [9] [5] [3] [4] [2] [6] [7] [8] [10] [1] i want to loop
Lets say i have 10 images placed on canvas
[1] [2] [3] [4] [5]
[6] [7] [8] [9] [10]
I have changed position of some of the images
[9] [5] [3] [4] [2]
[6] [7] [8] [10] [1]
i want to loop in the similar order based on position from top left
很抱歉,我无法创建/显示示例
现在fabric.js中的foreach考虑基于添加的对象和基于z-index,如果我可能是正确的话
是否有任何方法可以基于左上角的位置在对象之间循环
任何帮助都将是巨大的。最直截了当的技术将涉及大量使用
fabric.Object
类的intersectsWithRect
方法。它以两个点作为构成正方形的参数
在画布上的所有对象上使用此方法,可以看到哪些对象与该正方形相交
我的建议是将整个画布分割成一个由这些正方形组成的网格,然后从左上角的正方形开始循环到右下角的正方形。您肯定需要使用类似于两个for循环的东西来测试每个正方形
测试每个正方形时,如果看到画布上的一个对象与该正方形相交,请将其添加到结果数组中
最终,当您到达网格的末尾时,您的阵列将完成
你可能遇到的问题是每个正方形有多大。正方形越小,你的列表就越准确,但完成这一切的过程就越慢
正方形越大,其精度可能越低,但循环完成得更快
我之所以提到精确性,是因为你有能力在画布上堆叠对象,而这项技术只会告诉你一个对象是否与两点所创建的区域相交。它不会告诉您它们在画布网格的“单元格”中的顺序
希望这有帮助