设置Leap Motion框架进行frame.translation

时间:2019-03-08 19:59:51

标签: python-2.7 leap-motion

我是一个非常新手的程序员,并且碰到了我正在从事的辅助项目。我试图建立一个循环,以反复从跨越跳跃运动的运动中获取转换数组。我在跳跃运动文档中找到了python的以下代码:

linear_frame_movement = frame.translation(start_frame)

按照定义,这听起来确实符合我的需求,但是当我尝试在非常基本的代码中使用此命令时,我并不确定要如何定义初始帧或参考帧。以下是我试图获取frame.translation的代码部分:

position = hand.palm_position
L = frame.translation(position, start_frame)
y = position
print "position: %s" % (L)
print "position1: %s" % (position)

这将返回错误,例如“ L = frame.translation(position,start_frame),列出了两个以上的参数”。

这是否意味着仅需要初始化一个起始帧,然后该命令将自行确定转换数组,还是需要以完全不同的方式定义这两个参数?

我的编码背景是在matlab中,所以python对我来说是安静的。如果这是我所缺少的非常直接的问题,我深表歉意。任何输入将不胜感激。

1 个答案:

答案 0 :(得分:0)

documentation读取,转换方法仅需要一个输入,该输入就是要从中引用转换的初始框架(因此,start_frame变量名称)。这将是在当前帧之前获得的有效帧。

您不必引用当前框架,因为转换方法在当前框架对象-frame.translation()中。

如果当前帧或start_frame无效,则返回0 (使用返回一个布尔值的frame.is_valid属性进行检查)。

否则,返回的是vector类。向量类将参考当前帧给出对象在x和y方向上的平移(可以使用属性vector.x和vector.y获得)。因此,可以通过使用返回向量平移当前对象位置来确定先前的对象位置。

这可以简单地通过从当前对象位置x和y值中减去平移矢量的x和y值来完成。这也可以相反地进行。我尚未对此进行测试,因此不确定是否正确的方法。

希望这会有所帮助!