как реализовать двойной щелчок?


Позвольте мне объяснить, что мы делаем:
Мы разработали рамку из ИК-датчиков/приемников, которую можно поместить вокруг экрана, и, по сути, она превращает экран в бесконтактный экран. Мы можем перемещать курсор мыши, когда пользователь перемещает палец внутри рамки, и мы также можем генерировать щелчок правой кнопкой мыши, просто видя, что если пользователь удерживает палец над одними и теми же координатами в течение x времени, то генерировать правый щелчок.

Проблема в двойном клике. С помощью обычной мыши пользователь просто дважды щелкает кнопку и готово. Любые мысли о том, как этого можно достичь?

Спасибо.


person infinitloop    schedule 07.03.2011    source источник
comment
Почему этот тег помечен как генетический алгоритм?   -  person David Heffernan    schedule 07.03.2011
comment
Вы хотите найти жест, который представляет собой двойной щелчок? Какие входы у вас есть? Одноместный (x,y)? (x,y) на каждый палец? Можете ли вы определить, когда пользователь высовывает язык (тогда вы можете делать забавные видеоролики YouTube о пользователях, дважды щелкающих мышью)?   -  person Albin Sunnanbo    schedule 07.03.2011
comment
извините за генетический алгоритм, не выспался, он выглядел как общий алгоритм ?? прости еще раз. Двойное касание @BlackBear, как в?   -  person infinitloop    schedule 07.03.2011
comment
так же, как @assaf предложил   -  person BlackBear    schedule 07.03.2011


Ответы (2)


Решением будет использование разных таймеров для правого клика и двойного клика. Когда вы кладете палец на интерактивный элемент, в месте положения пальца появляется круговой индикатор выполнения, когда прогресс достигает конца (круг завершается) и пользователь убирает палец, определяется правый щелчок. Если пользователь не убирает палец, появляется другой индикатор выполнения, если этот индикатор выполнения достигает 100%, у вас есть двойной щелчок.

На мой взгляд, гораздо лучшим решением было бы НЕ двойной щелчок или даже щелчок правой кнопкой мыши, проверьте интерфейс навигации по меню XBox Kinect для хорошего примера.

Надеюсь, поможет.

С Уважением.

person redent84    schedule 07.03.2011
comment
мы на самом деле управляем мышью, и мы используем операционную систему Windows, поэтому люди могут захотеть открыть папку, для которой, я думаю, потребуется двойной щелчок. Но мне нравится идея синхронизировать правый щелчок и двойной щелчок. - person infinitloop; 07.03.2011

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

Время 0: (палец за пределами экрана)
Время 1: (палец касается P1)
Время 2: (палец от экрана)
Время 3: (палец касается P2)

где P1 и P2 близки (до заданного уровня допуска), а Time 3 и Time 1 близки (до заданного уровня чувствительности двойного щелчка).

person Assaf    schedule 07.03.2011
comment
хм... звучит интересно. Но аппаратное обеспечение дает координаты x, y. Это как ломать луч в направлении x и другой в направлении y. - person infinitloop; 07.03.2011
comment
@rashid Я думаю, что X и Y в этом ответе означают две точки (пары координат). Это похоже на двойное нажатие на экран. - person biziclop; 07.03.2011
comment
ах, попался! Я попробую это и сообщу вам, ребята, результат. Большое вам спасибо. - person infinitloop; 07.03.2011
comment
@biziclop правильно оценил мое намерение - я изменил имена переменных на P1 и P2, чтобы было понятно. - person Assaf; 07.03.2011