Как найти дельта-тэту, имеющую два кадра, каждый из которых имеет две точки?

Я работаю в C ++, я использую Visual Studio в качестве IDE, и я работаю с Leap Moap SDK

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

Также это приложение использует кадры для отображения событий с течением времени.

Я хотел бы знать, как использовать два кадра и две точки для расчета изменения для поворота с использованием
движения двух точек над двумя кадрами.

const Frame frame = controller->frame();      //current frame
const Frame previous = controller->frame(1);  //previous frame

const FingerList fingers = frame.fingers();   //fingers inside that frame
POINT aFingerPoint = fingers[0].position()    //point of a finger from a finger array
POINT anotherFingerPoint = fingers[1].position()    //point of a finger from a finger array

const FingerList prevFingers = previous.fingers();   //fingers inside that frame
POINT aPrevFingerPoint = fingers[0].position()    //point of a finger from a finger array
POINT anotherPrevFingerPoint = fingers[1].position()    //point of a finger from a finger array

// coordinate example
float x = aFingerPoint.x;
float y = aFingerPoint.y;

float deltaRotation = [THIS PART I DONT KNOW]; //I got the translation already, just need rotation
circle.manipulation(deltaRotation);  //Rotates the circle in degrees

0

Решение

A — точка первого пальца, A ‘- точка первого пальца после движения.

B — точка второго пальца, B ‘- точка второго пальца после движения.

Если я вас правильно понял, вашим ответом будет разница между углами ABx и A’B’x, где x — ось x. Это легко сделать с помощью функции atan2 (dy, dx) from, где dx = Ax-Bx, dy = Ay-By.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]