我正在尝试创建一个带有摆动的弦和质量的摆锤,预计该摆锤会摆动一段时间,然后停止。从我写的内容来看,群众无法停止摆动。请帮我。
import pyglet
import pymunk
import chipmunk
from pymunk import Vec2d
from pymunk.pyglet_util import DrawOptions
window = pyglet.window.Window(1300,700,"Oscillation",resizable=False)#
W,H
options=DrawOptions()
space=pymunk.Space()
space.gravity= 0,-100
b0= space.static_body
p0= 100,200
body= pymunk.Body(mass=0.5, moment =1)
body.position = (100,50)
circle= pymunk.Circle(body, radius=20)
joint= pymunk.constraint.DampedSpring(b0, body,p0, (0,0), 100, 10, 0)
space.add(body, circle, joint)
@window.event
def on_draw():
window.clear()
space.debug_draw(options)
def update(dt):
space.step(dt)
if __name__=="__main__":
pyglet.clock.schedule_interval(update,1.0/60)
pyglet.app.run()
答案 0 :(得分:1)
您未在通话的最后一个参数中提供阻尼:
joint= pymunk.constraint.DampedSpring(b0, body,p0, (0,0), 100, 10, 0)
因此它将永远振荡。放一些阻尼,它会减慢速度。