Share JSXGraph: example "Add points on click"

JSXGraph
Share JSXGraph: example "Add points on click"
This website is a beta version. The official release will be in **2023**.

Add points on click

This example shows how to add a point whenever *the user clicks* on the board. The function `getMouseCoords` extracts the click coordinates from the event object and returns a `JXG.Coords` object with the point's coordinates on the board. The for loop in the event listener is to check if there is already a point as we don't want to create a point in this case.
// Define the id of your board in BOARDID

const board = JXG.JSXGraph.initBoard(BOARDID, {
    boundingbox: [-5, 5, 5, -5],
    axis: true
});

var getMouseCoords = function(e, i) {
        var pos = board.getMousePosition(e, i);
        return new JXG.Coords(JXG.COORDS_BY_SCREEN, pos, board);
    },

    handleDown = function(e) {
        var canCreate = true,
            i, coords, el;

        if (e[JXG.touchProperty]) {
            // index of the finger that is used to extract the coordinates
            i = 0;
        }
        coords = getMouseCoords(e, i);

        for (el in board.objects) {
            if (JXG.isPoint(board.objects[el]) && board.objects[el].hasPoint(coords.scrCoords[1], coords.scrCoords[2])) {
                canCreate = false;
                break;
            }
        }

        if (canCreate) {
            board.create('point', [coords.usrCoords[1], coords.usrCoords[2]]);
        }
    };

board.on('down', handleDown);