2014-02-04 2 views
0

Есть ли способ, по которому я могу программно узнать, завершен ли круг?обнаружить, если круг завершен с использованием местоположения

Во-первых, пользователь нажимает кнопку «Пуск», а затем извлекается и сохраняется текущее местоположение.

После этого мне нужно получить уведомление, как только круг будет завершен не обязательно в точном месте, проверьте прикрепленное изображение.

enter image description here

+1

Вы говорите, что круг завершен, пока он заканчивается на том же самом радиусе, что и началось? Если это так, то вы, вероятно, просто хотите вычислить угол и посмотреть, является ли угол одинаковым. Решение, вероятно, будет включать в себя 'Math.atan2 (y-y0, x-x0)' где 'x0' и' y0' - координаты центра. – ajb

+0

У меня есть координаты начальной точки, но у меня нет координат центра. – PyQL

+3

Это не очень специфично. Если вы положите центр ниже, чем там, где он находится на вашей фигуре, круг был закончен намного раньше. – hivert

ответ

0

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

Я рассмотрел бы разбивку полного круга на четыре квадранта, разделенных следующими направлениями: первое касательное направление (между первой парой точек), а также направления 90 °, 180 ° и 270 °, вращающиеся против этого , Правильный гладкий круг проходил бы через каждый из этих сегментов по порядку: первые направления были бы между 0 ° и 90 ° (опять же с начальным направлением в качестве эталона), затем между 90 ° и 180 °, затем между 180 ° и 270 °, а затем между 270 ° и 360 ° = 0 °. Как только он вернется в первый из этих квадрантов, вы знаете, что завершили ход.

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

+0

Можете ли вы подробнее рассказать? или дать простой технический пример, если это возможно – PyQL

Смежные вопросы