Берут попарные разности координат точек в качестве приближения для направления касательной.
Я рассмотрел бы разбивку полного круга на четыре квадранта, разделенных следующими направлениями: первое касательное направление (между первой парой точек), а также направления 90 °, 180 ° и 270 °, вращающиеся против этого , Правильный гладкий круг проходил бы через каждый из этих сегментов по порядку: первые направления были бы между 0 ° и 90 ° (опять же с начальным направлением в качестве эталона), затем между 90 ° и 180 °, затем между 180 ° и 270 °, а затем между 270 ° и 360 ° = 0 °. Как только он вернется в первый из этих квадрантов, вы знаете, что завершили ход.
Вы можете сделать то же самое с двумя, а не с четырьмя секторами, но четыре более надежны: небольшой джиттер в касательном направлении может заставить вас переключаться между двумя соседними сегментами несколько раз, но не более двух. Таким образом, с четырьмя сегментами, вы можете позволить некоторым идти туда и обратно и все еще обнаруживать, когда круг завершен.
Вы говорите, что круг завершен, пока он заканчивается на том же самом радиусе, что и началось? Если это так, то вы, вероятно, просто хотите вычислить угол и посмотреть, является ли угол одинаковым. Решение, вероятно, будет включать в себя 'Math.atan2 (y-y0, x-x0)' где 'x0' и' y0' - координаты центра. – ajb
У меня есть координаты начальной точки, но у меня нет координат центра. – PyQL
Это не очень специфично. Если вы положите центр ниже, чем там, где он находится на вашей фигуре, круг был закончен намного раньше. – hivert