Я пытаюсь написать некоторое программное обеспечение для обнаружения точек и линий, основанное на том, что пользователь рисует на холсте (я делал все это через Интернет и html 5 холст). Когда пользователь выполняет событие MouseDown, мы создаем массив, который будет содержать все точки его/ее рисунка. Каждое событие MouseMove после этого толкает точку (x, y) в массив. Событие MouseUp сигнализирует о завершении чертежа пользователя. То, что я хочу делать с этими точками, определяет, где пользователь явно изменил направление. Рассмотрим следующий пример:Обнаружение точки/линии на основе набора последовательных/полупоследовательных точек
выше методика генерируется следующий упорядоченный набор точек:
[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 4), (7, 3), (8, 2)]
Таким образом, исходя из этих точек, я могу сказать, что пользователь четко изменил направления в точке (5, 5) вперед , Результат программы даст мне три очка [(1, 1), (5, 5), (8, 2)], потому что я буду использовать первую точку последовательности, попытаюсь найти четкое изменение направления и получить эту точку и использовать конечную точку в последовательности.
Приведенный выше пример чрезвычайно упрощен из-за количества точек и того факта, что они находятся в полностью прямой линии. Когда пользователь фактически рисует на холсте, линия не будет полностью прямой. Для моих целей вы можете предположить, что пользователь рисует прямые строки, а не откровенно изогнутые.
Итак, основываясь на приведенной выше информации, какие алгоритмы, методологии и т. Д. Вы бы предложили использовать?
EDIT: опечатка