嗨我有一个画布,放置了多个图像,我想从左上角的位置循环播放图像,并一直向下。
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来考虑。
有没有办法可以根据左上角的位置循环对象。
任何帮助都会很棒。
答案 0 :(得分:1)
最直接的表面技术将涉及大量使用fabric.Object
类intersectsWithRect
方法。它需要两个点作为构成正方形的参数。
在画布上的所有对象上使用此方法,您可以看到哪些与此正方形相交。
我的建议是将整个画布分成这些正方形的网格,并从左上方的方块开始循环到每个方格,然后向下到右下方。你肯定需要使用两个for循环来测试每个方块。
测试每个方块时,如果您看到画布上的某个对象与该方块相交,请将其添加到结果数组中。
最终,当你到达网格的末尾时,你的阵列就会完整!
您可能遇到的问题是每个方块的大小。方块越小,列表越精确,但完成所有过程的速度就越慢。
正方形越大,它的准确度就越低,但环路的完成速度会快得多。
我之所以提到准确性只是因为你能够在画布上堆叠对象,而这种技术只会告诉你一个物体是否与这两个点所创造的区域相交。它没有告诉你他们在'单元格内的顺序。画布网格。
希望这有帮助!