Python 搅拌机弹跳球计算

Python 搅拌机弹跳球计算,python,blender,Python,Blender,我正在尝试做一个脚本,动画在搅拌机一个反弹的篮球- 关键因素是 球径:25厘米 坠落高度:1.7米 速度0.8m/s 每次撞击地面后,其速度和高度应分别为85%和77% 到目前为止我的代码 # Variablen# Variablen h = 1.7 # height g = 9.81 t = 0 # time v0 = 0.8 # velocity m / s ctx.scene.frame_current = 1 ops

我正在尝试做一个脚本,动画在搅拌机一个反弹的篮球-

关键因素是

  • 球径:25厘米
  • 坠落高度:1.7米
  • 速度0.8m/s
每次撞击地面后,其速度和高度应分别为85%和77%

到目前为止我的代码

# Variablen# Variablen
h = 1.7         # height
g = 9.81        
t = 0           # time

v0 = 0.8       # velocity m / s

ctx.scene.frame_current = 1
ops.anim.keyframe_insert_menu(type='Location')

s = v0 * t     # distance on x

boinks = 9

for x in range(1, boinks + 1):

    t = t+math.sqrt(2*h/g)
    s = t * v0

    ctx.scene.frame_current = t*24
    ops.transform.translate(value=(s, 0, -h))
    ops.anim.keyframe_insert_menu(type='Location')

    ctx.area.type = 'GRAPH_EDITOR'                      
    ops.graph.select_leftright(mode='RIGHT')    
    ops.graph.handle_type(type='VECTOR')                
    ctx.area.type = 'TEXT_EDITOR'

    v0 = v0*0.85
    h = h * 0.77
    t = t+math.sqrt(2*h/g)
    s = t * v0

    ctx.scene.frame_current = t*24
    ops.transform.translate(value=(s, 0, h))
    ops.anim.keyframe_insert_menu(type='Location')

    ctx.area.type = 'GRAPH_EDITOR'                      
    ops.graph.select_leftright(mode='RIGHT')    
    ops.graph.handle_type(type='FREE')
    ctx.area.type = 'TEXT_EDITOR'

但它看起来有点不对劲。我想我遗漏了什么…

也许,我不太确定这是否对你有帮助,但在为你的对象选择了fcurve的位置后,你可以按T并选择bounce,这样你就完成了。 如果您想用参数编写代码,这是非常无用的,但作为起点,它非常适合