CircleGesture

属性:

  • center

  • normal

  • progress

  • radius

  • pointable

  • class_type

class Leap. CircleGesture

继承自 Gesture

CircleGesture 类表示一个画圈的手指动作。

手指指尖在 LeapMotion 控制器视野内做一个画圈的动作是能够被识别的。

注意:在你的应用中始终画圈手势识别前你必须先激活它,你可以这样做:

controller.enable_gesture(Leap.Gesture.TYPE_CIRCLE)

画圈手势是连续的。CircleGesture 对象的手势有三种状态:

  • STATE_START - 一个圈型手势刚刚开始。指尖的移动过程处理一定程度后,分类器就会把它识别成一个圆圈。

  • STATE_UPDATE - 一个圈型手势还在继续。

  • STATE_STOP - 圈型手势结束。

你可以使用 config 属性来设置一个连接的 Controller 对象识别圆圈手势的最小半径和最小弧长。使用下面的键值来配置圆圈的识别:

键值

类型

默认值

单位

Gesture.Circle.MinRadius

float

5.0

mm

Gesture.Circle.MinArc

float

1.5 * pi

radians

下面的例子展示了如何设置一个圆圈的配置参数:

controller.config.set("Gesture.Circle.MinRadius", 10.0)
controller.config.set("Gesture.Circle.MinArc", .5)
controller.config.save()

New in version 1.0

构造函数

classmethod CircleGesture([gesture]) 从一个 Gesture 类实例中构造一个 CircleGesture 对象。

circle = Leap.CircleGesture(gesture)

参数:gesture(Gesture) - 特定的 Gesture 实例。这个 Gesture 实例必须是 CircleGesture 对象。如果没有设置参数,或者传入其他实例的手势,则会创建一个无效的CircleGesture 对象。

属性

center

类型:Vector

当前 LeapMotion 帧中所画圆圈的圆心。

centerPoint = circle.center

New in version 1.0

--

normal

类型:Vector

被追踪的圆圈的法向量。

如果你顺时针画圆圈,那么法向量会与可指向对象画圈的方向相同。如果你你逆时针方向画圈,那么法向量就会与可指向对象的方向相背。相反,如果法向量和可指向对象的夹角小于90度,那么所画圈则为顺时针方向。

circle = Leap.CircleGesture(gesture)
if (circle.pointable.direction.angle_to(circle.normal) <= Leap.PI/2):
    clockwiseness = "clockwise"
else:
    clockwiseness = "counterclockwise"

New in version 1.0

--

progress

类型: float

指尖画圈的次数。

Progress 的值是一个正值。例如当一个progress 的值为 0.5 时,表示手指已经画完一半了,如果值为 3 则表示已经画满三圈了。

import math
completeTurns = math.floor(circle.progress)

Progress 在画圈手势开始时启动。 LeapMotion 软件识别出它时,画圈这个动作必须已经完成了其中一部分,progress 会从 0 开始生产当它首次出现在一帧中时。

New in version 1.0

--

radius

类型:float

画圈的弧度。

diameter = 2 * circle.radius

New in version 1.0

--

pointable

类型: Pointable

执行画圈的手指。

circlingPointable = circle.pointable

New in version 1.0

类属性

class_type

类型:int

圆圈手势类型指示符:Gesture.TYPE_CIRCLE

New in version 1.0

Last updated

Was this helpful?