【问题标题】:Gojs - highlight nodes upon mouse selection on screenGojs - 在屏幕上选择鼠标时突出显示节点
【发布时间】:2019-06-27 11:16:47
【问题描述】:

我正在使用https://www.npmjs.com/package/@simonwep/selection-js 库来选择屏幕上的一个区域。我有一个 Gojs 地图,我想在其中突出显示我用鼠标选择的区域内的所有节点。

问题是我从 Gojs 获得的坐标值没有意义..

我在地图的左上角有一个节点,x 应该是 0,y 也应该是 0。

当我使用var docloc = this.diagram.transformDocToView(node.part.location);

值是{x: 46.79957533551601, y: 13.364121297226063}

这很好,但我不知道如何获取宽度和高度,所以我可以知道节点是否在我选择的区域内。

当我使用node.part.actualBounds.size

我收到{width: 313.7058502906977, height: 82.43768168604652}

不正确!!

我用鼠标在上面的节点周围画了一个小区域,看到宽度是94px

请帮忙!!

【问题讨论】:

    标签: coordinate-systems gojs


    【解决方案1】:

    您有可以共享的节点模板吗? GoJS 坐标不会对应于窗口坐标,因此您可能还需要进行这种转换。

    【讨论】:

      【解决方案2】:

      经过一番挖掘,我最终得到了以下解决方案:

      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!!

      【讨论】:

        猜你喜欢
        • 2015-10-30
        • 1970-01-01
        • 2012-07-05
        • 1970-01-01
        • 1970-01-01
        • 2017-08-08
        • 1970-01-01
        • 2011-03-15
        • 1970-01-01
        相关资源
        最近更新 更多