【问题标题】:jsxgraph: How do I update a line's points?jsxgraph:如何更新线的点?
【发布时间】:2018-06-01 07:02:12
【问题描述】:

假设我创建了一行:

var line = board.create('line', [2, 2], [3, 3], { ... });

Line.point1 的文档说明:

您真的不应该直接设置此字段,因为它可能会破坏 JSXGraph 的更新系统,因此您的构造将无法正确更新。

在 jsxgraph 中更新我传递给构造函数的这些点坐标的推荐方法是什么?

更新: 我刚试过:

line.point1.moveTo(4, 4);
line.point2.moveTo(5, 5);

但这似乎把事情搞砸了,也就是说,在我这样做之后,这条线是不可拖动的。

【问题讨论】:

  • 你试过了吗line.point1.moveTo([4,4])
  • 是的,成功了!我只是语法错误。谢谢。

标签: javascript jsxgraph


【解决方案1】:

根据the documentation moveTo 为坐标移动到一个数组:

line.point1.moveTo([4, 4]);
line.point2.moveTo([5, 5]);

它还需要一个时间作为动画持续时间的第二个参数(以毫秒为单位)。当您正在寻找即时移动时(当毫秒被省略或为 0 时也会发生同样的事情),您可以改用 setPosition

【讨论】:

    【解决方案2】:

    另一个选项是setPositionDirectly 方法。我相信它比moveTo 快。如果您不需要为运动设置动画,这可能是一个更好的选择。之后确实需要更新调用。

    line.point1.setPositionDirectly(JXG.COORDS_BY_USER,[4,4]);
    line.point2.setPositionDirectly(JXG.COORDS_BY_USER,[5,5]);  
    board.update();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      相关资源
      最近更新 更多