首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jsxgraph依赖点

Jsxgraph依赖点
EN

Stack Overflow用户
提问于 2016-06-13 19:03:34
回答 2查看 168关注 0票数 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())]);

这是一个简单的二次函数演示。我希望顶点用滑块a,b或c相应地改变它的位置,但它不起作用。

我甚至连一个javascript的学徒都没有。请指教,非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2016-06-14 09:39:23

代码语言:javascript
复制
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();
 });

虽然我不确定我是如何理解的,但我试着解决了,并完成了

票数 0
EN

Stack Overflow用户

发布于 2016-06-14 15:15:49

另一个(更简单的)解决方案是将点d的坐标动态化,即提供函数而不是固定坐标:

代码语言:javascript
复制
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());
            }]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37788112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档