我想在 JSXGraph 中定义一条可拖动的曲线,类似于这个例子:
http://jsxgraph.uni-bayreuth.de/wiki/index.php/Draggable_exponential_function
但是,我想拖动整个曲线本身,而不是改变形状,而不是根据拖动的单个点来改变函数的形状。实际上,对于这种情况,数学属性并不是那么重要——如果我不将它定义为函数也没关系,我只想在图表上有一条可以拖动的固定曲线。
谁能给我一个如何做到这一点的例子?
我想在 JSXGraph 中定义一条可拖动的曲线,类似于这个例子:
http://jsxgraph.uni-bayreuth.de/wiki/index.php/Draggable_exponential_function
但是,我想拖动整个曲线本身,而不是改变形状,而不是根据拖动的单个点来改变函数的形状。实际上,对于这种情况,数学属性并不是那么重要——如果我不将它定义为函数也没关系,我只想在图表上有一条可以拖动的固定曲线。
谁能给我一个如何做到这一点的例子?
通过设置属性可以使曲线可拖动fixed:false
。这是一个例子:
var board = JXG.JSXGraph.initBoard('box1', {boundingbox: [-5, 20, 5, -2], axis:true});
var graph = board.create('functiongraph', [
function(x) {
return Math.sin(x) + 5;
}], {fixed: false});
最好的祝愿,阿尔弗雷德
第一个想法是设置draggable:true
,但这不起作用。
第二个想法是对图形的点进行分组,然后拖动该组,但是,图形没有vertices
我们可以使用的。您可以看到它console.log(graph.points[0]);
显示 t.Coords 而不是所需的 Point 对象。
第3个想法是在拖动可见点A时设置图形的位置,但是不起作用:https ://jsfiddle.net/3u9rk8nj/3/可能是因为在拖动过程中图形更新了。
第四个想法是更改拖动时的图形功能以匹配鼠标坐标。这有效:
var board = JXG.JSXGraph.initBoard('box1', {boundingbox: [-5, 20, 5, -2], axis:true});
var point_a = board.create('point', [0, 0] );
var graph = board.create('functiongraph', [
function(x) {
// adapt function outcome to match point dragging
return Math.exp(x-point_a.X()) + point_a.Y();
}]);
JSFiddle:https ://jsfiddle.net/3u9rk8nj/4/