在图表上有几个紧密间隔的点。通过悬停一些突出显示的点(它的错误),但信息框正确显示一个点。 是否有任何方法可以限制事件的范围?
答案 0 :(得分: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));
};