我已经在JSXGraph中的函数图和直线之间定义了intersection。当我移动直线时,相交会按预期更新其位置。但是当我移动功能图时,交点消失了。我需要在这里做一些特殊的配置吗?这是jsxgraph的错误吗?这是问题的现场演示:

http://maldive.ccnmtl.columbia.edu/js/functiongraph-intersection.html

这是代码:

var l1 = board.create('line', [
    [2.5, 2.5],
    [3.5, 3.5]
], {
    name: 'line 1',
    withLabel: true,
    label: { position: 'rt', offset: [10, -20] },
    strokeColor: 'blue',
    strokeWidth: 2,
    fixed: false
});

var f = function(x) {
    var alpha = 0.3;
    return (1 - alpha) *
        (1.4 *
         1.6 ** alpha) *
        (x ** -alpha);
};

var l2 = board.create('functiongraph', [f], {
    name: 'line 2',
    withLabel: true,
    strokeWidth: 2,
    strokeColor: 'orange',
    fixed: false
});

var i = board.create('intersection', [l1, l2, 0], {
    name: 'intersection',
    fixed: true,
    showInfobox: false
});

最佳答案

是的,确实这是JSXGraph中的错误。在版本0.99.6及之前的版本中,一条线和一条连续曲线之间的交点是通过根查找算法确定的。现在的问题是,通过在曲线点(绘图算法的输出)上应用变换来实现拖动曲线。在根查找算法中不考虑此转换,因为改用了函数项。

相反,两条曲线之间的交点是使用作为曲线绘制算法输出的点确定的。在此,转换已被应用。这就是为什么相交适用于曲线y = x的原因。

现在,源代码中包含一个错误修复程序,它将在今天的每晚版本中提供。从现在开始,直线和曲线之间的交点就像曲线/曲线的交点一样完成。精度会有少量损失,但这是不可见的。

感谢您指出这一点!

10-06 14:19