2016-06-13 7 views
0

var brd = JXG.JSXGraph.initBoard('box', {boundingbox: [-10, 10, 10, -10], axis:true, showcopyright:false}), a = brd.create('slider',[[2,-5],[7,-5],[-5,1,5]], {name:'a'}), b = brd.create('slider',[[2,-6],[7,-6],[-5,0,5]], {name:'b'}), c = brd.create('slider',[[2,-7],[7,-7],[-5,0,5]], {name:'c'}), f = brd.create('functiongraph',[function(x){ return a.Value()*x*x + b.Value()*x + c.Value(); }]); var d = brd.create('point',[(4*a.Value()*c.Value()-b.Value()*b.Value())/(4*a.Value()),-1*b.Value()/(2*a.Value())]);Jsxgraph依存点

これは、2次関数の簡単なデモです。スライダーa、b、cで頂点の位置を変更したいと思います。しかしそれはうまくいかなかった。

私はjavascriptの見習いにも近くはありません。アドバイスをお願いします。

答えて

0
var brd = JXG.JSXGraph.initBoard('jxgbox', {boundingbox: [-10, 10, 10, -10], axis:true, showcopyright:false}), 
a = brd.create('slider',[[2,-5],[7,-5],[-5,1,5]], {name:'a'}), 
b = brd.create('slider',[[2,-6],[7,-6],[-5,3,5]], {name:'b'}), 
c = brd.create('slider',[[2,-7],[7,-7],[-5,4,5]], {name:'c'}), 
f = brd.create('functiongraph',[function(x){ 
     return a.Value()*x*x + b.Value()*x + c.Value(); 
    }]); d = brd.create('point',[-1*b.Value()/(2*a.Value()),(4*a.Value()*c.Value()-b.Value()*b.Value())/(4*a.Value())],{fixed:true}); 
brd.on('move', function() {brd.suspendUpdate(); 
brd.removeObject(d); 
d = brd.create('point',[-1*b.Value()/(2*a.Value()),(4*a.Value()*c.Value()-b.Value()*b.Value())/(4*a.Value())],{fixed:true}); 
    brd.unsuspendUpdate(); 
}); 

私は完全に私が解決しようとしましたが、それは別の(単純な)ソリューションは、点の座標d動的な、すなわち供給機能の代わりをすることであろう

0

を行うのか、理解して確認していないのに固定座標:

var brd = JXG.JSXGraph.initBoard('box', 
     {boundingbox: [-10, 10, 10, -10], axis:true, showcopyright:false}), 
    a = brd.create('slider',[[2,-5],[7,-5],[-5,1,5]], {name:'a'}), 
    b = brd.create('slider',[[2,-6],[7,-6],[-5,0,5]], {name:'b'}), 
    c = brd.create('slider',[[2,-7],[7,-7],[-5,0,5]], {name:'c'}), 
    f = brd.create('functiongraph',[ 
      function(x){ 
       return a.Value()*x*x + b.Value()*x + c.Value(); 
      }]), 
    d = brd.create('point',[ 
      function() { 
       return (4*a.Value()*c.Value()-b.Value()*b.Value())/(4*a.Value()); 
      }, 
      function() { 
       return -1*b.Value()/(2*a.Value()); 
      }]);