CircleGesture

属性:

  • center
  • normal
  • progress
  • radius
  • pointable
  • class_type

class Leap. CircleGesture

继承自 Gesture

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

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

CircleGesture - 图1

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

  1. 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

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

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

New in version 1.0


构造函数

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

  1. circle = Leap.CircleGesture(gesture)

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


属性

center

类型:Vector

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

  1. centerPoint = circle.center

New in version 1.0

normal

类型:Vector

被追踪的圆圈的法向量。

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

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

New in version 1.0

progress

类型: float

指尖画圈的次数。

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

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

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

New in version 1.0

radius

类型:float

画圈的弧度。

  1. diameter = 2 * circle.radius

New in version 1.0

pointable

类型: Pointable

执行画圈的手指。

  1. circlingPointable = circle.pointable

New in version 1.0


类属性

class_type

类型:int

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

New in version 1.0