jsxgraph中线属性的条件更新

时间:2019-06-13 09:28:29

标签: 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';}}});

但是它们不起作用(行始终是实线)。

谢谢您的提示!

1 个答案:

答案 0 :(得分:0)

最快的方法是

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/现场观看。