Версия 2.1.0

Quick search

Table Of Contents

Распознавание жестов

Этот класс позволяет легко создавать новые жесты и сравнивать их:

from kivy.gesture import Gesture, GestureDatabase

# Создать жест
g = Gesture()
g.add_stroke(point_list=[(1,1), (3,4), (2,1)])
g.normalize()

# Добавить его в базу данных
gdb = GestureDatabase()
gdb.add_gesture(g)

# И для следующего жеста попробуйте найти его!
g2 = Gesture()
# ...
gdb.find(g2)

Предупреждение

Вам действительно не стоит этого делать: это больше пример того, как создавать жесты динамически. Обычно вам понадобится гораздо больше точек, поэтому лучше записывать жесты в файл и загружать их для последующего сравнения. Посмотрите в каталоге examples/gestures пример того, как это сделать.

class kivy.gesture.Gesture(tolerance=None)[source]

Основа: builtins.object

Реализация алгоритма распознавания жестов на Python, разработанного Олегом Доперчуком: http://www.gamedev.net/reference/articles/article2039.asp

Реализовано Жейелом Ареналом (chemikhazi@gmail.com), выпущено в общественное достояние.

add_stroke(point_list=None)[source]

Добавляет ход к жесту и возвращает экземпляр Stroke. Необязательный аргумент point_list - это список точек мыши для хода.

dot_product(comparison_gesture)[source]

Вычисляет скалярное произведение жеста с другим жестом.

get_rigid_rotation(dstpts)[source]

Извлекает вращение для применения к группе точек для минимизации расстояния до второй группы точек. Предполагается, что две группы точек находятся в центре. Это простая версия, которая просто выбирает угол на основе первой точки жеста.

get_score(comparison_gesture, rotation_invariant=True)[source]

Возвращает оценку соответствия жеста другому жесту.

normalize(stroke_samples=32)[source]

Запускает алгоритм нормализации жеста и вычисляет скалярное произведение с самим собой.

class kivy.gesture.GestureDatabase[source]

Базовый класс: builtins.object

Класс для работы с базой данных жестов.

add_gesture(gesture)[source]

Добавить новый жест в базу данных.

find(gesture, minscore=0.9, rotation_invariant=True)[source]

Найти соответствующий жест в базе данных.

gesture_to_str(gesture)[source]

Преобразует жест в уникальную строку.

str_to_gesture(data)[source]

Преобразует уникальную строку в жест.

class kivy.gesture.GestureStroke[source]

Базовый класс: builtins.object

Жесты могут состоять из нескольких ходов.

add_point(x=x_pos, y=y_pos)[source]

Добавляет точку к ходу.

center_stroke(offset_x, offset_y)[source]

Центрирует ход путем смещения точек.

normalize_stroke(sample_points=32)[source]

Нормализует ходы так, чтобы у каждого хода было стандартное количество точек. Возвращает True, если ход нормализован, False, если его нельзя нормализовать. sample_points управляет разрешением хода.

points_distance(point1=GesturePoint, point2=GesturePoint)[source]

Возвращает расстояние между двумя точками GesturePoint.

scale_stroke(scale_factor=float)[source]

Уменьшает ход на scale_factor.

stroke_length(point_list=None)[source]

Находит длину хода. Если задан список точек, то находит длину этого списка.