Настройка кадров Leap Motion для frame.translation

Я очень начинающий программист, и я уперся в стену с побочным проектом, над которым я работаю. Я пытаюсь настроить цикл, чтобы неоднократно получать массив перевода из движения через движение прыжка. Я нашел в документации по прыжку этот код для python:

linear_frame_movement = frame.translation(start_frame)

что по определению звучит как то, что мне нужно, но когда я пытаюсь использовать эту команду в очень простом коде, я не совсем понимаю, как определить начальный кадр или опорный кадр. ниже приведен раздел кода, в котором я пытаюсь распечатать frame.translation:

position = hand.palm_position
L = frame.translation(position, start_frame)
y = position
print "position: %s" % (L)
print "position1: %s" % (position)

Это сообщает об ошибке, например «L = frame.translation (position, start_frame), указано более 2 аргументов».

Означает ли это, что нужно инициализировать только начальный кадр, после чего команда самостоятельно определит массивы перевода, или два аргумента должны быть определены совершенно по-другому?

Мой опыт программирования находится в Matlab, поэтому Python для меня совершенно чужд. Мои извинения, если это очень прямой вопрос, который я просто пропустил. Мы будем очень признательны за любой вклад.


person Matt Teel    schedule 08.03.2019    source источник


Ответы (1)


чтение из документации , метод перевода требует только одного входа, который является начальным кадром, из которого будет осуществляться перевод (отсюда и имя переменной start_frame). Это будет действительный кадр, полученный перед текущим кадром.

вам не нужно ссылаться на текущий фрейм, так как метод перевода находится внутри объекта текущего фрейма - frame.translation().

возвращается 0, если текущий кадр или start_frame недопустимы (это проверяется с помощью атрибута frame.is_valid, который возвращает логическое значение).

В противном случае возвращается класс vector. Класс вектора будет давать перемещения объектов в направлениях x и y (которые можно получить с помощью атрибутов vector.x и vector.y) относительно текущего кадра. Следовательно, предыдущее положение объектов может быть определено путем перевода текущего положения объектов с использованием вектора возврата.

Это можно просто сделать, отняв значения x и y вектора перемещения от значений x и y текущего положения объектов. Это можно сделать и в обратном порядке. Я не проверял это, поэтому не уверен, что это правильный метод.

Надеюсь это поможет!

person Nik    schedule 03.04.2019