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 - это список точек мыши для хода.
- get_rigid_rotation(dstpts)[source]¶
Извлекает вращение для применения к группе точек для минимизации расстояния до второй группы точек. Предполагается, что две группы точек находятся в центре. Это простая версия, которая просто выбирает угол на основе первой точки жеста.
- class kivy.gesture.GestureDatabase[source]¶
Базовый класс:
builtins.object
Класс для работы с базой данных жестов.
- class kivy.gesture.GestureStroke[source]¶
Базовый класс:
builtins.object
Жесты могут состоять из нескольких ходов.
- normalize_stroke(sample_points=32)[source]¶
Нормализует ходы так, чтобы у каждого хода было стандартное количество точек. Возвращает True, если ход нормализован, False, если его нельзя нормализовать. sample_points управляет разрешением хода.