python - 用 Pymunk 摆动弹簧
问题描述
我正在尝试创建一个带有振荡弦和质量的钟摆,预计它会振荡一段时间然后停止。从我写的内容来看,质量无法停止振荡。请帮帮我。
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()
解决方案
您没有在调用的最后一个参数中提供阻尼:
joint= pymunk.constraint.DampedSpring(b0, body,p0, (0,0), 100, 10, 0)
所以它会永远振荡。放一些阻尼,它应该会减慢。
推荐阅读
- azure - DNN 中的 Azure B2C 提供商
- c# - 如何使用 IdentityModel.OidcClient 通过 refresh_token 获取 LoginResult?
- python - 分离 \t,但保留 'e+06' 或任何权力
- mysql - 使用 FastAPI 和 MYSQL 在 SQLAlchemy 中自动生成的主列(整数)的默认限制是多少?
- python - Python:在嵌套字典和 .csv 文件之间转换(通用)?
- fullcalendar - 使用私有 Google 日历的 FullCalendar 示例
- python - Prefect 中的循环任务
- angular - 从应用程序导入 .scss,中断库构建,Angular11
- animation - JavaFX图表:启用动画时动态数据会导致视轴故障
- javascript - 如何链接和使用外部 JS 文件并在 ejs 文件中使用它?