0

图中有几个相距很近的点。通过悬停突出显示的一些点(这是错误),但信息框正确显示了一个点。А 有什么方法可以限制事件的范围吗?

4

1 回答 1

1

在 JSXGraph 中,元素的敏感区域被增强以实现更好的处理,特别是对于线条。对于点,敏感区域是边长为r + 2像素的四边形,其中r是点的半径(在圆形的情况下)和属性JXG.Options.precision.hasPoint的最大值。JXG.Options.precision.hasPoint的默认值取决于指针设备类型,即鼠标或触摸。可以通过设置小值来控制

JXG.Options.precision.mouse = 1; // default is 4
JXG.Options.precision.touch = 1; // default is 30

打电话之前JXG.JSXGraph.initBoard()

如果要定义自己的敏感区,hasPoint可以覆盖该方法。默认方法如下所示:

JXG.Point.hasPoint = function (x, y) {
    var coordsScr = this.coords.scrCoords, r;

    r = parseFloat(this.visProp.size) +
        parseFloat(this.visProp.strokewidth) * 0.5;

    if (r < this.board.options.precision.hasPoint) {
        r = this.board.options.precision.hasPoint;
    }

    return ((Math.abs(coordsScr[1] - x) < r + 2) && 
            (Math.abs(coordsScr[2] - y) < r + 2));
};
于 2016-02-17T09:12:25.987 回答