为frame.translation设置Leap Motion帧

问题描述 投票:0回答:1

我是一名非常新手的程序员,而且我正在研究我正在研究的辅助项目。我正在尝试设置一个循环来重复从跨越运动的移动中获取平移数组。我在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),列出的参数超过2个”。

这是否意味着只需要初始化一个起始帧然后命令将自己确定转换数组,或者是否需要以完全不同的方式定义2个参数?

我的编码背景是在matlab中,所以python对我来说很安静。如果这是一个我很遗憾的非常直接的问题,我表示歉意。任何投入将不胜感激。

python-2.7 leap-motion
1个回答
1
投票

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

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

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

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

这可以简单地通过从当前对象位置x和y值中取掉平移向量的x和y值来完成。这也可以反过来完成。我没有测试过这个,所以我不确定它是否是正确的方法。

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.