jsxgraph中线属性的条件更新

conditional update of line properties in jsxgraph

在 jsxgraph 中,我想在两点之间画一条线,如果第一个点位于另一个点的左侧,则该线为实线,否则为虚线。当我用鼠标移动第一个点时,我希望线条的外观动态变化。

我试过以下方法

var board = JXG.JSXGraph.initBoard('jxgbox', {boundingbox: [-7, 5, 12, -5], axis:true, keepAspectRatio:true});
var p1 = board.create('point', [-1, 0]);
var p2 = board.create('point', [0, 0]);
var s =  board.create('segment', [p1, p2]);
if (p1.XEval()>0) {s.setProperty({dash:2});}

var board = JXG.JSXGraph.initBoard('jxgbox', {boundingbox: [-7, 5, 12, -5], axis:true, keepAspectRatio:true});
var p1 = board.create('point', [-1, 0]);
var p2 = board.create('point', [0, 0]);
var s =  board.create('segment', [p1, p2], {function(){if (p1.XEval()>0) {return 'dash:2';}}});

但它们没有用(线总是实线)。

感谢您的任何提示!!

最快的方法是

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

var p1 = board.create('point', [-1, 1]);
var p2 = board.create('point', [0, 1]);
var s =  board.create('segment', [p1, p2], {
        dash: function() { return (p1.X() < p2.X()) ? 0 : 1 }
    });

JSXGraph 中的大多数属性的值都可以是返回适当值的函数。

http://jsfiddle.net/b59drc3u/ 现场观看。