let Engine = Matter.Engine,
Render = Matter.Render,
Runner = Matter.Runner,
World = Matter.World,
Bodies = Matter.Bodies,
Constraint = Matter.Constraint;
let engine = Engine.create(),
world = engine.world;
let render = Render.create({
element: document.body,
engine: engine,
options: {
width: 800,
height: 600,
wireframes: false,
background: "#fafafa",
},
});
let base = Bodies.rectangle(400, 100, 350, 20, {
isStatic: true,
render: { fillStyle: "#2e3276" },
});
let side_base = Bodies.rectangle(280, 280, 20, 350, {
isStatic: true,
render: { fillStyle: "#2e3276" },
});
let ball = Bodies.circle(800, 300, 20, {
density: 0.04,
frictionAir: 0.005,
restitution: 0.8,
friction: 0.01,
render: { fillStyle: "#4CAF50" },
});
let pendulum = Constraint.create({
pointA: { x: 400, y: 100 },
bodyB: ball,
render: { strokeStyle: "#000000" },
length: 170,
});
let spring = Constraint.create({
pointA: { x: 280, y: 300 },
bodyB: ball,
stiffness: 0.0001,
render: { strokeStyle: "#000000" },
});
World.add(world, [base, side_base, ball, pendulum, spring]);
Runner.run(engine);
Render.run(render);
<script src="https://cdn.jsdelivr.net/npm/matter-js@0.18.0/build/matter.min.js"></script>
例如,首先,我有一个矩形和一个圆.我创造了一个从矩形到圆形的约束,它起作用了,就像一个钟摆.现在,我需要创建一个从另一个矩形到创建之前的约束的新约束,但它不起作用.你对这个问题有什么 idea 吗?谢谢.这个问题是在matter.js中创建的
是这样的,但我需要的是线上的弹簧,而不是圆圈里的弹簧.