Arm
属性:
class Leap.Arm
Arm(手臂) 类表示一个追踪的手前臂。
注意,Arm 对象可以是无效的,这意味着它没有包含任何有效的的追踪数据且不符合一个实际手臂。无效的 Arm 对象能够作为从一个无效 Hand 对象访问一个 Arm 对象的结果。用 Arm 的构造函数创建一个 Arm 对象也可以是无效的。有效对象的检测办法是通过访问 Arm.is_valid() 属性。
New in Version 2.0.3
构造函数
classmethod Arm()
构造一个有效的 Arm 对象。
从 Hand 对象中获得一个有效的 Arm 对象。
hand = frame.hands.frontmost
arm = hand.arm
返回类型:Arm
New in Version 2.0.3
实例属性
basis
类型:Matrix
一个 Arm 的正交基向量矩阵。
基向量指定了一条手臂的方向。
- x_basis: 垂直于手臂,沿手腕侧向;
- y_basis 或 up vector: 垂直于手臂,沿手臂的上下方向,正轴为向上的方向。
- z_basis:沿手臂方向,正轴指向肘部.
basis = arm.basis
x_basis = basis.x_basis
y_basis = basis.y_basis
z_basis = basis.z_basis
center = arm.elbow_position + (arm.wrist_position - arm.elbow_position) * .05
arm_transform = Leap.Matrix(x_basis, y_basis, z_basis, center)
右手臂使用了右手定则;而左手臂则使用左手定则。因此 右手臂的 x 轴正方向向右,而左手臂的 x 轴正方向向左。你可以通过将基向量乘以 -1 把右手的规则更改为左手定则。
你可以使用上述的基向量作为衡量复杂手势的姿势和骨骼动画的依据。
需要注意的是,将基向量直接转化成一个四元数表示并不是数学意义上有效的。 如果你要使用四元数,不要直接创建它们,而应从旋转矩阵推导创建。
New in Version 2.0.3
—
direction
类型:Vector
从手臂肘到手腕的单位向量方向。
direction = arm.direction
New in Version 2.0.3
—
elbow_position
类型:Vector
手臂肘的位置。
elbow = arm.elbow_position
New in Version 2.0.3
—
is_valid
类型:boolean
返回一个 Arm 对象是否包含有效的数据。
arm = frame.hand(20).arm
if(arm.is_valid):
# ... 使用数据
New in Version 2.0.3
—
width
类型:float
手臂的平均宽度。
width = arm.width
displacement = arm.wrist_position - arm.elbow_position;
length = displacement.magnitude
New in Version 2.0.3
—
wrist_position
类型:Vector
手腕的位置。
wrist = arm.wrist_position
New in Version 2.0.3
类属性
invalid
类型: Arm
一个无效的 Arm 对象。
arm = Leap.Arm.invalid
New in Version 2.0.3