范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Pymunk是一个易于使用的pythonic2d物理库

  1 说明:
  =====
  1.1 中英文介绍:
  Pymunk is a easy-to-use pythonic 2d physics library
  pymunk是一个易于使用的pythonic 2d物理库
  1.2 多基于pygame和pyglet的动画。
  1.3 官网示意图:
  图1:index_video.gif,可以实现
  2 准备:
  =====
  2.1 官网:http://www.pymunk.org/en/latest/ https://pypi.org/project/pymunk/ https://github.com/viblo/pymunk
  2.2 环境:
  华为笔记本电脑、深度deepin-linux操作系统、谷歌浏览器、python3.8和微软vscode编辑器。
  2.3 安装:pip install pymunk #本机安装,且推荐国内源安装 sudo pip3.8 install pymunk -i https://mirrors.aliyun.com/pypi/simple
  3 官方example:
  arrow
  bouncing_balls
  4 拿官网的动画gif来讲解:
  ======================
  4.1 图1:index_video.gif,也可以实现,代码量太多了,省略,属于example。
  4.2 蜘蛛网:spiderweb.py对代码进行修改,注释,bug改进。
  5 spiderweb.py代码:
  ===============
  提前看看效果图:
  5.1 第1步:导入模块import math, random import pyglet import pymunk from pymunk.vec2d import Vec2d
  5.2 第2步:初始化参数设定config = pyglet.gl.Config(sample_buffers=1, samples=2, double_buffer=True) window = pyglet.window.Window(config=config, vsync = False,     #窗口大小和标题名设定     width=800,     height=800,     caption="spiderweb",     resizable=True)  #pymunk物理参数设定 space = pymunk.Space() space.gravity = 0,-900 space.damping = .999 #中心点坐标 c = Vec2d(window.width /2., window.height / 2.)                  #WEB参数 web_group = 1 bs = [] dist = .3  cb = pymunk.Body(1,1) cb.position = c  #位置中心点坐标 s = pymunk.Circle(cb, 15) # to have something to grab s.filter = pymunk.ShapeFilter(group = web_group) s.ignore_draw = True space.add(cb, s)
  5.3 第3步:织网#generate each crossing in the net for x in range(0,101):     b = pymunk.Body(1, 1)     v = Vec2d.unit()     v.angle_degrees = x*18     scale = window.height / 2. / 6. * .5          dist += 1/18.      dist = dist ** 1.005          offset = 0     offset = [0.0, -0.80, -1.0, -0.80][((x*18) % 360)//18 % 4]     offset = .8 + offset          offset *= dist**2.8 / 100.          v.length = scale * (dist + offset)           b.position = c + v     s = pymunk.Circle(b, 15)     s.filter = pymunk.ShapeFilter(group = web_group)     s.ignore_draw = True     space.add(b,s)     bs.append(b)  #连接线 def add_joint(a,b):     rl = a.position.get_distance(b.position) * 0.9     stiffness = 5000.     damping = 100     j = pymunk.DampedSpring(a, b, (0,0), (0,0), rl, stiffness, damping)     j.max_bias = 1000     j.max_force = 50000     space.add(j)      for b in bs[:20]:     add_joint(cb,b)      for i in range(len(bs)-1):     add_joint(bs[i], bs[i+1])      i2 = i+20     if len(bs) > i2:         add_joint(bs[i], bs[i2])
  5.4 网和点的关系static_bs = [] for b in bs[-17::4]:     static_body = pymunk.Body(body_type = pymunk.Body.STATIC)     static_body.position = b.position     static_bs.append(static_body)          j = pymunk.PivotJoint(static_body, b, static_body.position)     j = pymunk.DampedSpring(static_body, b, (0,0), (0,0), 0, 0, 0)     j.damping = 100     j.stiffness = 20000     space.add(j)  #更新 def update(dt):     r = 10     for x in range(r):         space.step(1./30./r)                  pyglet.clock.schedule_interval(update, 1/30.)  selected = None selected_joint = None mouse_body = pymunk.Body(body_type = pymunk.Body.KINEMATIC)
  5.5 第5步:窗口事件绑定和运行#第5步:窗口时间绑定 @window.event def on_mouse_press(x, y, button, modifiers):     mouse_body.position = x,y     hit = space.point_query_nearest((x,y), 10, pymunk.ShapeFilter())     if hit != None:         global selected         body = hit.shape.body         rest_length = mouse_body.position.get_distance(body.position)         stiffness = 1000         damping = 10         selected = pymunk.DampedSpring(mouse_body, body, (0,0), (0,0), rest_length, stiffness, damping)         space.add(selected)          @window.event def on_mouse_release(x, y, button, modifiers):     global selected     if selected != None:         space.remove(selected)         selected = None      @window.event def on_mouse_drag(x, y, dx, dy, buttons, modifiers):     mouse_body.position = x,y     @window.event def on_key_press(symbol, modifiers):     #保存设置,当按p就是保存     if symbol == pyglet.window.key.P:         pyglet.image.get_buffer_manager().get_color_buffer().save("spiderweb.png")      fps_display = pyglet.window.FPSDisplay(window)  @window.event def on_draw():     #窗口背景颜色设置,默认为黑色(0,0,0,255),最后一个255为透明度     #pyglet.gl.glClearColor(240,240,240,255)  #白色     #pyglet.gl.glClearColor(0,0,0,255)  #黑色,不设置也是黑色     window.clear()          fps_display.draw()          # static attach points     pyglet.gl.glColor3f(1,0,1)     pyglet.gl.glPointSize(6)     a = []     for b in static_bs:         a += [b.position.x, b.position.y]         pyglet.graphics.draw(len(a)//2, pyglet.gl.GL_POINTS, ("v2f",a))          # web crossings / bodies     pyglet.gl.glColor3f(.8,.8,.8)     a = []     for b in bs:         a += [b.position.x, b.position.y]     pyglet.gl.glPointSize(4)     pyglet.graphics.draw(len(a)//2, pyglet.gl.GL_POINTS, ("v2f",a))              # web net / constraints     a = []     for j in space.constraints:         a += [j.a.position.x, j.a.position.y, j.b.position.x, j.b.position.y]         pass          pyglet.graphics.draw(len(a)//2, pyglet.gl.GL_LINES, ("v2f",a))       pyglet.app.run()
  关注我,不迷路。
  学习你学不到的python知识,作为你编程的补充。

人和人相处的维度真的很重要我是故事创作者柯柯KOKO一直有说人分三六九等,这个观念我不认可,我们同样是人,何来的三六九等之分。不是说一个人花钱如流水,穿名牌,开跑车,出入高档场所这个人就是上等人。也不是说一恐婚未来的迷茫我是故事创作者柯柯KOKO这段时间的自己非常的情绪化,你问我怎么了,我可能会和你说我恐婚了。原因呢?或许是对未来的迷茫,或许是对未知的恐惧,或许是对以后的不确定性,归根究底,我想是你觉得你每天很累,那你有去过医院吗?21天图文打卡挑战柯柯KOKO上个礼拜,跟几个朋友去吃饭,去吃饭的路上有一位老年中风患者,他一手拄着拐杖,一手僵硬的蜷曲着,一条腿向前迈,一条腿被拖着向前迈。我们快速的从他的身边路成年人学会控制你的情绪情感点评大赏柯柯KOKO这几天,跟一位年长朋友聊天,她跟我说我女儿89年的,到现在都没有结婚,我看她是脑子不大好了,跟她说说嘛!脾气来得个差。我就坐在那里听她断断续续的说她女儿,最猝不及防就成了成年人追梦路上的好心人柯柯KOKO我们这一代年轻人,我们这一代90后,没有吃过太多6070年代父辈的苦。我们一直在他们的羽翼下健康茁壮的成长,猝不及防下我们也成年了。蓦然回首,我们还是那足足省了2w,多亏了新生儿医保!宝妈必办你知道吗?新生儿其实也可以办医保!而且办得越快越好,千万别拖过28天。我的一个闺蜜孩子早产,住院半个月,花费2w多,还好办理了儿童医保,只花了4k!像在广州,一年最高可报40万,其开学季入园在家两手抓,为了娃,老母亲花大心思开学一周,你们的娃还好吗?为了迎接这次开学,除了做好入园准备,家里也重新添置了很多东西来营造学习的氛围先简单说下幼儿园清单推荐书包tigerfamily不多说了,之前有个视频介绍过秋季腹泻!上吐下泻,90的孩子都逃不过秋季腹泻,很多妈妈开始担心的问题来了。与普通拉肚子不同,秋季腹泻起病急症状重时间长易脱水,而且所有年龄段的孩子都会中招。像圆圆的托班,才10个小朋友,有好几个小朋友国庆期间都中了,全职妈妈离婚补偿5万全职妈妈的牺牲和付出,到底能换来什么?这2天,首个离婚经济补偿案件在北京房山法院实锤依据民法典新规,全职妈妈由于在婚内承担了较多的义务,获得5万元经济赔偿。新闻一出,迅速引发网友热议女孩子在家里承担的家务比较多,5万很孩子我希望你心机一些值得每个父母看一下最近朋友圈疯传一段网络视频。视频片段视频中,三个女孩在天台上玩耍,其中一位蓝色衣服的女孩站在最靠近护栏角落的地方,并且手里一直牢牢抓住护栏。另外两位小女孩站在天台边缘最危险的地方,少年派代沟就是你在和同学聊星座,而妈妈却误会你不是处女由张嘉译闫妮赵今麦领衔主演的电视剧少年派正在热播,该电视剧讲述了孩子的成长学习过程中与父母的种种问题。在最近几集中由赵今麦饰演的林妙妙邀请自己的好朋友赵小琪来自己家里做客,为了邀请
梦回6年前,宁波9万业主被套牢!量价齐跌,楼市变了今年以来,楼市调控的频次与力度都在挑战新高,从过去的炒房第一城,再到过热的二三线城市,调控以更高频更多维的姿态,直指高房价。有些城市,已然撑不住了。宁波楼市成交量梦回6年前自4月开真没想到,为了鼓励生三胎,北京这次连房子都给配好了自三胎政策推出以来,关于它的热点新闻就一直没有断过。这不,最近北京的一项政策又把生娃这件事推向了风口浪尖。8月18日,北京市住建委印发关于加强公共租赁住房资格复核及分配管理的通知,二手房成交创年内新低!专家提示未来房地产六大趋势已经显现9月上海二手房成交12040套,同比下滑60,与8月相比下降31。7,比1月高峰期下降了73,创了今年新低。虽然数据稍有下滑,但跟同样实施二手房交易指导价的深圳来比,已经好很多了,解析30城写字楼市场Q3找房活跃度上涨金融行业租赁需求最高近日,58同城安居客发布2021年Q3三十城写字楼租赁指数报告,报告通过对写字楼租金指数用户行为指数经纪人信心指数的分析,展现第三季度写字楼租赁的市场情况。报告显示,第三季度,三十买房有现金补贴?楼市放水再现,10月后调控或将松动很明显感受到,今年国家对于楼市调控的力度日趋严格。据不完全统计,调控目前已达400多次,不仅数量创新高,同时政策调控的工具箱还在不断丰富。而今年祭出的限购限贷限涨限拍等政策,实际瞄100万人都在问买门面商铺50万,要交多少税?您现在收看的是由好奇日报菌发表的商业问答日报002期。在这里,我们每天更新2个商业地产热门问题,为大家答疑解惑。这些问题,都来自于58同城安居客用户的真实提问这些回答,则来自于我们销售瞎忽悠?别听!收下这5条建议,买房不亏钱售楼处的销售总是喜欢给我这个那个的建议,什么边户好,中间差,我听得都糊涂了,他说的哪些建议是可信的啊?怎么判断?买房是一件涉及了较大金额与财产的交易,动辄就得耗费六个钱包三代人的积刚需有福了!建材涨价,房价不涨?买房请牢记三大铁律01hr建材上涨,房价会涨吗?今年,大宗商品涨价是公认的事实。受到国内外疫情影响,国内需求量赶不上供应量,特别是像水泥河沙类的建筑材料,可谓是一路飞涨。据中国经济周报走访报道,在湖楼市四面楚歌!牢记3类房子不能买,否则只能压箱底现在这样的时间点,救市的消息层出不穷,就在最近,哈尔滨发布的十六条稳楼市的举措,引发了不少讨论,因为今年下半年以来,类似的救市限跌消息层出不穷,同样地处东北,沈阳长春等地也曾发布过期房烂尾之后,多数人选择继续还贷?这4点你必须知道问题1现在不是说很多新房都有烂尾的风险吗?我身边有朋友就遇到了这样的问题,但是我觉得挺奇怪的是,就算是烂尾了,她也还在继续还贷,这是为什么?明知道房屋已经烂尾了,买房人自己已经是血贵是一种优势,它不让你受委屈!一提起光明园迪,大家都有两个印象。第一个印象是质量好。第二个印象是价格贵。其实,贵,没什么不好。商家也不是傻子,在这个互联网信息爆炸的时代,产品不好还卖的贵只会死的快。敢卖的贵说明