mxgraph中通过mouseMove鼠标拖动图形移动后 如何获取移动后图形的坐标
时间: 2024-04-12 20:29:33 浏览: 173
在 mxGraph 中,要获取移动后图形的坐标,可以通过监听 `mxGraph` 的 `mxEvent.MOVE_CELLS` 事件来实现。
首先,你需要为图形添加一个监听器来捕获移动事件。可以使用 `mxGraph.addListener` 方法来添加监听器。下面是一个示例代码:
```javascript
// 监听 MOVE_CELLS 事件
graph.addListener(mxEvent.MOVE_CELLS, function(sender, evt){
var cells = evt.getProperty('cells'); // 获取被移动的细胞
var dx = evt.getProperty('dx'); // 获取 X 轴的位移量
var dy = evt.getProperty('dy'); // 获取 Y 轴的位移量
// 对于每个被移动的细胞,打印移动后的位置
for(var i = 0; i < cells.length; i++){
var cell = cells[i];
var geo = graph.getModel().getGeometry(cell);
if(geo != null){
var x = geo.x + dx;
var y = geo.y + dy;
console.log('Cell ' + cell.getId() + ' 移动到:(' + x + ', ' + y + ')');
}
}
});
```
上述代码中,我们通过监听 `MOVE_CELLS` 事件来获取被移动的细胞和位移量。然后,我们可以使用 `mxGraph.getModel().getGeometry(cell)` 方法获取细胞的几何信息,并通过位移量计算出移动后的坐标。
请注意,上述示例中的 `graph` 是一个 `mxGraph` 实例,你需要根据你的具体情况来替换该变量名。此外,你还可以根据需要进行额外的处理,例如更新其他相关元素的位置等。
阅读全文