我是通过拖放在编辑器上插入图像。我想要检测图像是否重叠,如果它们是然后使他们的边界红色。
目前,我正在修改这个"mxGraph.prototype.cellsMoved“以检测图像被移动时的重叠。我正在寻找一个内置的or图函数,它可以检测图像是否重叠。
正如您在附加的图像中所看到的,两个图像被重叠,它们的边界被设置为红色。

任何帮助都将不胜感激。
发布于 2021-12-07 20:59:37
虽然mxCellsMoved可能是进行交叉检查的正确位置,但您可以从mxGraphView.getBounds获得单元格的边界框,并在其上调用mxUtils.intersects和目标节点。下面是一个示例(未经测试):
var graph = //mxGraph,
view = graph.view,
moved = //cells that have been moved
model = graph.model,
others = model.filterCells(model.cells, function(cell) {
return moved.indexOf(cell) === -1;
});
for(var m of moved) {
for(var unmoved of moved) {
if(mxUtils.intersects(view.getBounds(m), view.getBounds(unmoved)) {
//handle intersection logic
}
}
}这是可以优化的,但总体思路应该是可行的。
https://stackoverflow.com/questions/70004789
复制相似问题