我在一条线上有一个滑翔机,在你拖动它后会动画。然后我在滑翔机旁边创建了一个框(使用 4 个点和多边形)。
我的问题是,我想让用户拖动这个框来拖动滑翔机,并让框随着滑翔机移动。
这是我目前正在使用的完整代码的链接,它有助于可视化问题https://jsfiddle.net/uobdpw0y/2/
滑翔机是红点,它滑行的线是蓝色的。如您所见,拖动红点时盒子会移动,但拖动盒子的任何其他部分时不会移动。
这是与问题相关的代码:
// create the mass at the moving end of the spring
var point = board.create('glider', [5, 0, line], {withLabel: false, size: 1});
...
// create moving box at end of spring
var opts = {withLabel: false, size: 0, strokeColor:'green', fillColor:'green'};
var boxPoints = [];
boxPoints.push(board.create('point',[function(){return point.X()}, 0.5], opts));
boxPoints.push(board.create('point',[function(){return point.X()}, -0.5], opts));
boxPoints.push(board.create('point',[function(){return point.X()+2}, -0.5], opts));
boxPoints.push(board.create('point',[function(){return point.X()+2}, 0.5], opts));
board.create('polygon', boxPoints, {hasInnerPoints: true});
board.create('group', boxPoints);
所需的结果将类似于组文档https://jsxgraph.org/docs/symbols/Group.html#781b5564-a671-4327-81c6-de915c8f924e中看到的功能, 他们创建的框在您拖动时移动它的任何部分。
我尝试的最初解决方案是将滑翔机包含在用于盒子的点组中,但只能添加点对象,而不能添加滑翔机对象。