JSXGraph从中心点拖动整个圆圈

时间:2015-07-14 16:30:32

标签: javascript jsxgraph

我是JSXGraph的新手。我试图用两个点构造一个圆,其中A是中心点,B坐在圆上。我需要的是B调整圆圈的大小(没问题,它会这样做)但是当拖动A来移动整个圆圈而不调整它时。

他们在下面的链接中给出的示例包括A和B调整圆圈的大小:http://jsxgraph.uni-bayreuth.de/wiki/index.php/Circle

有人能指出我正确的方向吗?

感谢。

1 个答案:

答案 0 :(得分:0)

这确实是一个棘手的问题。解决方案是使用组。将两个(免费)点打包成这样的组:

    var board, A, B, circ, grp;

    board = JXG.JSXGraph.initBoard('box6', 
         {boundingbox:[-5,5,5,-5], keepaspectratio:true});

    A = board.create('point',[-1, -1], {size: 5, name: 'A', color: 'blue'});
    B = board.create('point',[2, -1], {size: 5, name: 'B', color: 'red'});
    circ = board.create('circle', [A, B]);

    grp = board.create('group', [A, B]);
    grp.removeTranslationPoint(B);

在这种情况下,拖动两个点会导致圆圈移动,同时保持半径不变。

此外,如果您想通过在其中心拖动来移动圆圈但允许通过拖动B来调整圆圈的大小,则必须从组中的转换点列表中删除B点:

    var board, A, B, circ, grp;

    board = JXG.JSXGraph.initBoard('box6', 
         {boundingbox:[-5,5,5,-5], keepaspectratio:true});

    A = board.create('point',[-1, -1], {size: 5, name: 'A', color: 'blue'});
    B = board.create('point',[2, -1], {size: 5, name: 'B', color: 'red'});
    circ = board.create('circle', [A, B]);

    grp = board.create('group', [A, B]);
    grp.removeTranslationPoint(B);