3

我正在尝试使用Dart js中的绘图库JSXGraph ,但我遇到了问题。

这是工作的javascript代码

var board = JXG.JSXGraph.initBoard(
    'box',
    {
      boundingbox: [-10, 10, 2, -1],
      axis: true,
      keepaspectratio: false,
      showNavigation: false
    }
);
var graph = board.create(
    'functiongraph',
    [function(x){ return 3*x*x + 5*x + 1;}, -10, 10],
    {strokeColor: '#ffff00'}
);

您可以在 jsFiddle 上尝试一下

我想做基本上相同的事情,但从飞镖。到目前为止,这是我想出的:

JsObject jsxGraph = context['JXG']['JSXGraph'];
var board = jsxGraph.callMethod('initBoard', [
  'box',
  new JsObject.jsify({
    'boundingbox': [-10, 10, 2, -1],
    'axis': true,
    'keepaspectratio': false,
    'showNavigation': false
  })
]);
var graph = board.callMethod('create', [
  'functiongraph',
  [(x){return 3*x*x + 5*x + 1;}, -10, 10],
  new JsObject.jsify({'strokeColor': '#ffff00'})
]);

我得到了绘图区域和轴,但我无法得到实际的绘图线。相反,控制台上出现错误:Uncaught TypeError: this.Y is not a function.

有人可以指出我可能做错了什么吗?我怀疑这与回调函数有关,但我真的不知道是什么。

4

1 回答 1

1

您的jsify代码中缺少:

JsObject jsxGraph = context['JXG']['JSXGraph'];
var board = jsxGraph.callMethod('initBoard', [
  'box',
  new JsObject.jsify({
    'boundingbox': [-10, 10, 2, -1],
    'axis': true,
    'keepaspectratio': false,
    'showNavigation': false
  })
]);
var graph = board.callMethod('create', [
  'functiongraph',
  new JsObject.jsify([(x){return 3*x*x + 5*x + 1;}, -10, 10]},
  new JsObject.jsify({'strokeColor': '#ffff00'})
]);
于 2015-08-28T09:04:34.117 回答