На графике есть несколько близко расположенных точек. При наведении некоторые точки подсвечиваются (это баг), но инфобокс корректно отображается для одной точки. Есть ли способы ограничить область событий?
JSXGraph. Ограниченная площадь точек
Ответы (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));
};
person
Alfred Wassermann
schedule
17.02.2016