vpython 贞测碰撞_球碰撞vPython问题

所以我在编写一个斯诺克游戏,我决定找出如何使球相互碰撞的最好方法是在一个单独的程序中这样做,然后复制进去。我是一个很有能力的数学家,所以我坐下来,画了一个事件,然后用数学的方法研究了实际发生的事情。在

我的方法是将每个球的初始速度分解成xr-和yr分量,在这个参照系中,xr分量与穿过每个球中心的矢量成一直线,yr分量垂直于此。然后我简单地切换球的xr分量,保持yr分量不变,然后计算速度的x和y分量回到标准参考系中。在

由于某种原因,不管是数学错误还是编程错误,我似乎都无法使它发挥作用。以下是我到目前为止所得到的,我已经浏览了互联网上几乎每一个相关的网页,以及这个网站上所有类似的问题。我也不是一个精通编程的人。在from visual import *

dt = 0.01

r = 5

red = sphere(pos=(-25,25,0),radius = r,color=color.red)

green = sphere(pos=(25,-25,0),radius = r,color=color.green)

red.velocity = vector(10,-10,0)

green.velocity = vector(-10,10,0)

def posupdate(ball):

ball.pos = ball.pos + ball.velocity*dt

def ballhit(ball1,ball2):

v1 = ball1.velocity

v1x = ball1.velocity.x

v1y = ball1.velo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值