如何在 matter.js 中平衡跷跷板上的两个正方形?
How to balance two squares on a see saw in matter.js?
我有两个盒子放在一个矩形上,我想在一个像跷跷板一样的二维矩形上保持平衡。
World.add(engine.world, [
Bodies.rectangle(400, 0, 800, 50, { isStatic: true }),
Bodies.rectangle(400, 600, 800, 50, { isStatic: true }),
Bodies.rectangle(800, 300, 50, 600, { isStatic: true }),
Bodies.rectangle(0, 300, 50, 600, { isStatic: true })
]);
var boxA = Bodies.rectangle(283.6, 480, 80, 80, { density: 0.005 });
var boxB = Bodies.rectangle(520, 480, 80, 80, { density: 0.005});
var arrow = Vertices.fromPath('40 0 40 20 100 20 100 80 40 80 40 100 0 50'),
chevron = Vertices.fromPath('100 0 75 50 100 100 25 100 0 50 25 0'),
star = Vertices.fromPath('50 0 63 38 100 38 69 59 82 100 50 75 18 100 31 59 0 38 37 38'),
horseShoe = Vertices.fromPath('35 7 19 17 14 38 14 58 25 79 45 85 65 84 65 66 46 67 34 59 30 44 33 29 45 23 66 23 66 7 53 7');
var catapult = Bodies.rectangle(400, 520, 320, 20, { friction: 0.5, collisionFilter: { group: group } });
var group = Body.nextGroup(true);
World.add(engine.world, [
catapult,
boxA,
boxB,
Bodies.rectangle(400, 600, 800, 50.5, { isStatic: true }),
Constraint.create({
bodyA: catapult,
pointB: Vector.clone(catapult.position),
stiffness: 1,
length: 0
})
]);
我根据 http://brm.io/matter-js/demo/#catapult 改编并删除了很多我认为没有必要的对象。
我想让物体完美平衡,但问题是盒子似乎总是在滑动。我怎样才能做到当盒子重量相等时它们可以完美平衡,如果我调整一侧的重量,跷跷板可以向另一边倾斜,但不会从跷跷板上滑落?如果跷跷板对重量不太敏感,我会更喜欢。
在真实的物理世界中,一个完美平衡的跷跷板是非常不稳定的,并且对盒子的重量很敏感。跷跷板之所以能够平衡,是因为木板与枢轴之间存在摩擦力。
向枢轴添加一些摩擦力以帮助其保持平衡,向盒子添加一些摩擦力以帮助它们停止滑动。
我有两个盒子放在一个矩形上,我想在一个像跷跷板一样的二维矩形上保持平衡。
World.add(engine.world, [
Bodies.rectangle(400, 0, 800, 50, { isStatic: true }),
Bodies.rectangle(400, 600, 800, 50, { isStatic: true }),
Bodies.rectangle(800, 300, 50, 600, { isStatic: true }),
Bodies.rectangle(0, 300, 50, 600, { isStatic: true })
]);
var boxA = Bodies.rectangle(283.6, 480, 80, 80, { density: 0.005 });
var boxB = Bodies.rectangle(520, 480, 80, 80, { density: 0.005});
var arrow = Vertices.fromPath('40 0 40 20 100 20 100 80 40 80 40 100 0 50'),
chevron = Vertices.fromPath('100 0 75 50 100 100 25 100 0 50 25 0'),
star = Vertices.fromPath('50 0 63 38 100 38 69 59 82 100 50 75 18 100 31 59 0 38 37 38'),
horseShoe = Vertices.fromPath('35 7 19 17 14 38 14 58 25 79 45 85 65 84 65 66 46 67 34 59 30 44 33 29 45 23 66 23 66 7 53 7');
var catapult = Bodies.rectangle(400, 520, 320, 20, { friction: 0.5, collisionFilter: { group: group } });
var group = Body.nextGroup(true);
World.add(engine.world, [
catapult,
boxA,
boxB,
Bodies.rectangle(400, 600, 800, 50.5, { isStatic: true }),
Constraint.create({
bodyA: catapult,
pointB: Vector.clone(catapult.position),
stiffness: 1,
length: 0
})
]);
我根据 http://brm.io/matter-js/demo/#catapult 改编并删除了很多我认为没有必要的对象。
我想让物体完美平衡,但问题是盒子似乎总是在滑动。我怎样才能做到当盒子重量相等时它们可以完美平衡,如果我调整一侧的重量,跷跷板可以向另一边倾斜,但不会从跷跷板上滑落?如果跷跷板对重量不太敏感,我会更喜欢。
在真实的物理世界中,一个完美平衡的跷跷板是非常不稳定的,并且对盒子的重量很敏感。跷跷板之所以能够平衡,是因为木板与枢轴之间存在摩擦力。
向枢轴添加一些摩擦力以帮助其保持平衡,向盒子添加一些摩擦力以帮助它们停止滑动。