Я смотрю простой, программный способ определения того, нарисовал ли пользователь круглую форму. Я работаю на C, но я счастлив работать с псевдокодом. Немного Googling вызывает много (надеюсь) чрезмерно сложных методов.
Я отслеживаю координаты мыши как float и создал массив векторов для отслеживания движения мыши с течением времени. По сути, я ищу, чтобы определить, когда был нарисован круг, а затем отбросить все данные перемещения, не связанные с этим кругом.
У меня есть основное представление о том, как это можно сделать:
Отслеживайте все движения, используя функцию опроса. Каждый раз, когда функция опроса, текущая позиция мыши сохраняется. Здесь мы просматриваем исторические данные о местоположении и делаем грубую "привязку к позиции" для сравнения двух местоположений. Если новое местоположение находится на достаточно близком расстоянии от старой позиции, мы удаляем все исторические данные перед старым местоположением.
Хотя это работает теоретически, это беспорядок на практике. У кого-нибудь есть предложения? Бонусные точки, если предложенный метод может определить, была ли она нарисована по часовой стрелке или против часовой стрелки.