poks | Дата: Воскресенье, 06 Ноября 2016, 21:28 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| Доброго времени суток. Возникла проблема с реализацией одной идеи. Думаю уже несколько дней, но никак не могу найти решение. Может, кто нибудь сможет подсказать алгоритм. Дело в том, что мне нужно чтобы игрок вырисовывал на экране какую-либо фигуру и если она совпадала с заранее подготовленной фигурой, то происходило определенное действие. Что-то подобное было в боевой системе Arx Fatalis. Не прошу готового решения, лишь алгоритм или что-нибудь, что подтолкнуло бы меня на мысль к решению.
|
|
| |
Rutraple | Дата: Воскресенье, 06 Ноября 2016, 22:01 | Сообщение # 2 |
почетный гость
Сейчас нет на сайте
| poks, есть множество решений задачи, просто надо искать.
Недавно писал распознавание жестов мышью. Есть такое решение, как построение направлений линий из массива точек заранее записанных с движения мыши. Алгоритм такой: - Записываешь координаты движения мыши в массив - Затем пробегаешься по массиву выделяя в нем сегменты (сегмент = длинна из точек, например, проверяешь сегмент длинною в три точки) - В каждой паре точек (0 - 1, 1 - 2, 2 - 3) вычисляешь угол (найдешь в гугле формулу как считать) - Затем проверяешь к какому из 8-ми направлений этот угол принадлежит - Если в одном сегменте из трех точек все направления совпали, то есть все углы из пар точек равны, скажем, 90, то записываешь в новый массив это направление
В итоге у тебя получается массив направлений (вниз, вверх и т.д), исходя из этих направлений можно предположить какую фигуру ты нарисовал. Естественно там много подводных камней, алгоритм не сильно хорош и чтобы написать качественно надо еще углубляться в тему, но всякие простые жесты - без проблем. Ищи в гугле Mouse Gesture.
After Time Last Of Time Happy Pumpkin
Сообщение отредактировал Rutraple - Понедельник, 07 Ноября 2016, 12:08 |
|
| |