как установить координаты точки? JSXGraph - PullRequest
0 голосов
/ 26 апреля 2020

Я не могу динамически изменять координаты точки. Попытка создать векторное вычисление, но не удалось установить координаты, указывающие на элемент.

a = board.create('point', [1, 1], {name: 'A',color:'green',size: .5,withLabel:false}),
board.create('arrow', [[0,0], a], {color:'green'});

b = board.create('point', [-1, 1], {name: 'B',color:'red',size: .5,withLabel:false}),
board.create('arrow', [[0,0], b], {color:'red'});

let xr = a.X() + b.X();
let yr = a.Y() + b.Y();
r = board.create('point', [xr, yr], {name: 'R',color:'black',size: .5,withLabel:false}),
board.create('arrow', [[0,0], r], {color:'black'});

board.on('update', function(){
    let xr = a.X() + b.X();
    let yr = a.Y() + b.Y();
    r.point2.setPosition([xr,yr]);
    board.fullUpdate();
});

setPosition не работает. Я хочу установить обновленное значение xr и xy каждый раз, когда вызывается событие обновления. enter image description here

Ответы [ 2 ]

0 голосов
/ 26 апреля 2020

Наиболее "JSXGraphy" способ реализовать ваш пример - это определить координаты точки r, которая будет функцией.

var a = board.create('point', [1, 1], {
            name: 'A', color:'green', size: .5, withLabel:false
        }),
    b = board.create('point', [-1, 1], {
            name: 'B', color:'red', size: .5, withLabel:false
        }),
    r = board.create('point', [
            function() { return a.X() + b.X(); },
            function() { return a.Y() + b.Y(); }], {
            name: 'R', color:'black', size: .5, withLabel:false
        });

board.create('arrow', [[0,0], a], {color:'green'});
board.create('arrow', [[0,0], b], {color:'red'});
board.create('arrow', [[0,0], r], {color:'black'});
0 голосов
/ 26 апреля 2020

Можно решить с помощью

r.point2.setPositionDirectly(JXG.COORDS_BY_USER,[xr,yr])

. Обратите внимание, что это будет работать только после обновления доски.

board.update();

Выше решение быстрее, чем с помощью moveTo.

...