jsxgraph: исчезает пересечение между functiongraph и линией
Я определил пересечение между функциональным графиком и прямой линией в JSXGraph. Когда я двигаю прямую линию, пересечение обновляет свою позицию, как и ожидалось. Но когда я перемещаю функциональный график, пересечение исчезает. Нужно ли здесь делать какие-то особые настройки? Это ошибка с 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
});
1 ответ
Да, действительно, это ошибка в JSXGraph. В версии 0.99.6 и ранее пересечение между линией и непрерывной кривой определяется алгоритмом поиска корня. Теперь проблема заключается в том, что перетаскивание кривой осуществляется путем применения преобразования к точкам кривой (которые являются выходными данными алгоритма построения графика). Это преобразование не учитывается в алгоритме поиска корня, поскольку вместо него используется функциональный термин.
Напротив, пересечение между двумя кривыми определяется с использованием точек, которые являются выходными данными алгоритма построения кривой. Здесь преобразование уже применено. Вот почему пересечения работают для кривой y = x
,
Источники теперь содержат исправление ошибки, которое будет доступно в сегодняшней ночной сборке. Отныне пересечение между линиями и кривыми осуществляется так же, как для пересечений кривых / кривых. Будет небольшая потеря в точности, но это не будет видно.
Спасибо за указание на это!