Gojs - 在屏幕上选择鼠标时突出显示节点
Gojs - highlight nodes upon mouse selection on screen
我正在使用 https://www.npmjs.com/package/@simonwep/selection-js 库来 select 屏幕上的某个区域。我有一张 Gojs 地图,我想在其中突出显示我用鼠标 select 编辑的区域内的所有节点。
问题是我从 Gojs 获得的坐标值没有意义..
我在地图的左上角有一个节点,其中 x 应该是 0,y 也应该是 0。
当我使用var docloc = this.diagram.transformDocToView(node.part.location);
值为 {x: 46.79957533551601, y: 13.364121297226063}
这很好,但我不知道如何获得宽度和高度,所以我可以知道节点是否在我 select 编辑的区域内。
当我使用 node.part.actualBounds.size
我得到{width: 313.7058502906977, height: 82.43768168604652}
这是不正确的!!
我用鼠标在上面的节点周围画了一个小区域,看到宽度是94px
。
请帮忙!!
您有可以分享的节点模板吗? GoJS 坐标不会对应于 window 坐标,因此您可能还需要进行该转换。
经过一番挖掘,我得出了以下解决方案:
const nodePosition = this.diagram.transformDocToView(node.actualBounds.position);
const nodeCenter = this.diagram.transformDocToView(node.actualBounds.center);
const nodeBoundaries = {
x1: nodePosition.x,
x2: nodePosition.x + (nodeCenter.x - nodePosition.x) * 2,
y1: nodePosition.y,
y2: nodePosition.y + (nodeCenter.y - nodePosition.y) * 2
};
我使用中心坐标计算了节点的边界。
我必须先 transformDocToView
!!
我正在使用 https://www.npmjs.com/package/@simonwep/selection-js 库来 select 屏幕上的某个区域。我有一张 Gojs 地图,我想在其中突出显示我用鼠标 select 编辑的区域内的所有节点。
问题是我从 Gojs 获得的坐标值没有意义..
我在地图的左上角有一个节点,其中 x 应该是 0,y 也应该是 0。
当我使用var docloc = this.diagram.transformDocToView(node.part.location);
值为 {x: 46.79957533551601, y: 13.364121297226063}
这很好,但我不知道如何获得宽度和高度,所以我可以知道节点是否在我 select 编辑的区域内。
当我使用 node.part.actualBounds.size
我得到{width: 313.7058502906977, height: 82.43768168604652}
这是不正确的!!
我用鼠标在上面的节点周围画了一个小区域,看到宽度是94px
。
请帮忙!!
您有可以分享的节点模板吗? GoJS 坐标不会对应于 window 坐标,因此您可能还需要进行该转换。
经过一番挖掘,我得出了以下解决方案:
const nodePosition = this.diagram.transformDocToView(node.actualBounds.position);
const nodeCenter = this.diagram.transformDocToView(node.actualBounds.center);
const nodeBoundaries = {
x1: nodePosition.x,
x2: nodePosition.x + (nodeCenter.x - nodePosition.x) * 2,
y1: nodePosition.y,
y2: nodePosition.y + (nodeCenter.y - nodePosition.y) * 2
};
我使用中心坐标计算了节点的边界。
我必须先 transformDocToView
!!