СПОСОБ ДЛЯ УПРАВЛЕНИЯ ПЕРЕМЕЩЕНИЕМ ГРАФИЧЕСКОГО УКАЗАТЕЛЯ НА УСТРОЙСТВАХ С СЕНСОРНЫМ ЭКРАНОМ, ИСПОЛЬЗУЮЩИЙ СВОЙСТВА ВЕКТОР-ФУНКЦИИ ДВИЖЕНИЯ (ЗАВИСИМОСТИ КООРДИНАТ ОТ ВРЕМЕНИ) ТОЧКИ КАСАНИЯ ПАЛЬЦА С ЭКРАНОМ ДЛЯ ПЕРЕКЛЮЧЕНИЯ МЕЖДУ РЕЖИМАМИ УПРАВЛЕНИЯ
METHOD FOR MANAGING OF GRAPHIC INDICATOR MOVEMENTS ON TOUCH SCREEN DEVICES USING THE PROPERTIES OF MOTION VECTOR-FUNCTIONS (TIME-COORDINATE DEPENDENT) OF MOTION OF A FINGER POINT WITH A SCREEN FOR SWITCHING BETWEEN CONTROL MODES

ОБЛАСТЬ ТЕХНИКИ
Изобретение относится к вычислительной технике, в частности к способам ввода информации человеком в вычислительные устройства. Оно позволяет управлять подвижным указателем (курсором) на устройствах, в которые информация вводится через касания пальцами сенсорного экрана, и может быть использовано при создании программ для таких устройств.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ, УРОВЕНЬ ТЕХНИКИ
Одним из основных элементов интерфейса, применяемого для управления вычислительными устройствами, является подвижный графический указатель, часто называемый курсором мыши. Наиболее распространенными средствами для управления этим указателем при использовании настольных компьютеров являются физические устройства ввода: компьютерная мышь и трекпад. Эти устройства переводят траекторию движения руки на плоскости в траекторию движения указателя. Потребность в использовании подвижного указатели сохраняется и на устройствах с сенсорным экраном, но имеющих мыши и трекпада. Использование мыши и трекпада может быть смоделировано при помощи различных способов воздействия на экран сенсорного устройства, при этом действия рукой на экране, аналогичные действиям с физическим устройством ввода, приводят к требуемому перемещению указателя.
Моделирование использования физических устройств ввода происходит за счет создания виртуальных устройств на сенсорном экране. При этом на экране создается область, все касания в которой относятся только к созданному виртуальному устройству и предназначены только для управления указателем. Будем называть эту область контрольной областью. Можно сказать, что контрольная область закрывает часть экрана для выполнения обычных действий: например, простое движение пальцем в этой области уже не вызовет прокручивание содержимого окна, а касание не вызовет активацию элемента управления программы. Таким образом, виртуальное устройство на экране состоит, из двух частей: контрольной области и указатели. В предлагаемом изобретении предлагается один из возможных способов управления указателей через воздействие на контрольную область.
Следует сразу указать, какие категории известных решений будут исключены из сопоставления с предлагаемым изобретением. Для этого вначале уточним некоторые понятия. Во-первых, независимо от того, какое название своему изобретению дают его авторы, условимся называть виртуальной мышью любой способ управления подвижным указателем на устройстве с сенсорным экраном, при котором контрольная область перемещается по экрану, сопровождая руку, касающуюся этой области. Во-вторых, назовем преобразование траектории движения пальца в траекторию движения указателя немасштабируемым, если перемещение пальца в 1 см. приводит к перемещению указателя в 1 см. Из сопоставления исключаются, следующие категории решений (с указанием причин).
1) Виртуальные трекпады (то есть способы управления указателем, в которых контрольная область не сопровождает перемещающуюся руку). Причины:
А) Контрольная область закрывает большую, чем в случае виртуальной мыши, часть экрана.
Б) Для моделирования движения с нажатой кнопкой нужно использовать более одного пальца.
В) В случае немасштабированного преобразования траектории пальца в траекторию указателя значительное перемещение указателя должно выполняться в несколько приёмов с отрывом пальца.
2) Виртуальные мыши с масштабированным преобразованием траектории.
Причина:
Как показывает практика, и на что указано в описаниях ко многим изобретениям, наибольший контроль над перемещением указателя достигается в том случае, когда указатель сопровождает движущуюся руку.
3) Виртуальные мыши, применяемые на устройствах, где воздействие на экран выполняется с помощью специального заострённого орудия (пера, стилуса).
Причина:
На таких устройствах проблема, решаемая с помощью настоящего изобретения, отсутствует.
Итак, предметом предлагаемого изобретения является способ, предназначенный для перемещения указателя, реализующий виртуальную мышь с немасштабированным преобразованием траектории движения пальца в траекторию движения указателя на устройствах, где воздействие на экран выполняется пальцами.
Постоянной трудностью при реализации указанной категории виртуальных устройств является следующий недостаток. Поскольку движущийся по экрану палец закрывает от взгляда пользователя пятно диаметром около 1.5 см., указатель должен находиться в стороне от пальца. Во время перемещения взаимное расположение пальца (или, что равнозначно, контрольной области) и указателя сохраняется неизменным. Если в начале движения указатель находился, например, с левой стороны от пальца, то в момент достижения пальцем правого края экрана указатель окажется на существенном расстоянии от этого края и не сможет продолжать движение в его направлении. Так в окрестностях краёв экрана образуются мёртвые зоны, недоступные для указателя. Для исправления данного недостатка нужно или жертвовать зонами по краям экрана, исключая их из рабочей области, или предложить подходящий метод изменения взаимного расположения указателя и контрольной области, который бы позволил указателю попадать в эти зоны.
Ниже приводятся ссылки на известные решения этой проблемы с кратким указанием способа решения. Все ссылки являются ссылками на патентные документы США.
US20150212698 A1
Виртуальная мышь, где взаимное расположение курсора и контрольной области остаётся неизменным. (Пункт 21 патентной формулы, абзац 31 описания). Проблема решается, судя по изображениям, за счёт добавления полей к рабочей области.
US20100214218 A1
Виртуальная мышь, где взаимное расположение курсора и контрольной области остаётся неизменным (Пункт 12 патентной формулы,  абзац 37 описания).
US5835079 A
Виртуальная мышь, где взаимное расположение курсора и контрольной области изменяется перестановкой мыши. Мышь считается поднятой, если полностью оторвана рука от экрана, при этом используется отпечаток целой руки. (Alternatively, the user could merely lift his hand and place it at a desired location, whereby the OS would re-create the virtual pointing device under the user's fingers at the new location.)
US20110018806 A1
Виртуальная мышь, где взаимное расположение курсора и контрольной области осуществляется поворотом контрольной области, который выполняется двумя пальцами. (Пункт 6 патентной формулы, абзац 58 описания)
US20060132460 A1
Виртуальная мышь, где взаимное расположение курсора и контрольной области устанавливается в начале движения, а после остаётся неизменным (Абзац 33 описания)
US20140313130 A1
Виртуальная мышь, где курсор находится на предопределённом расстоянии от контрольной области по одному из предопределённых направлений (влево-вверх, вправо-вверх и так далее). Изменение взаимного расположения происходит автоматически и скачкообразно на основе направления движения контрольной области в начальный момент (Пункт 17 патентной формулы,  абзацы 126-149 описания)
US6411283 B1
Виртуальная мышь, где курсор находится на предопределённом расстоянии от контрольной области по одному из предопределённых направлений (влево, вверх, вправо и так далее). Изменение взаимного расположения происходит автоматически и скачкообразно в момент вхождения контрольной области в левую или правую приграничные полосы экрана (Пункт 3 патентной формулы)
US20160378251 A1
Виртуальная мышь, где взаимное расположение курсора и контрольной области устанавливается в начале движения, причём средством для регулировки взаимного расположения служит жест (Пункт 1 патентной формулы,  абзац 46 описания)
US9582107 B2
Виртуальная мышь, при использовании которой выделяются два различных режима: режим регулирования 1 (disposition mode) и режим движения 2 (movement mode). В режиме регулирования контрольная область может перемещаться при неподвижном указателе, что позволяет установить произвольное их взаимное расположение. В режиме движения указатель сопровождает движение контрольной области со смещением, установленным во время режима регулирования. Указано, что способом переключения из режима движения в режим регулирования является опускание на экран второго пальца. (Пункт 6 патентной формулы, пятый пример реализации из описания).
Рассмотрим следующую задачу, которая должна быть выполнена с помощью виртуальной мыши.
Задача А:
«Пользуясь одним пальцем и не отрывая его от экрана, провести указатель по траектории, которая является отрезком прямой с концами в произвольных точках экрана».
Такая задача возникает, например, в текстовых редакторах, когда пользователь пытается с помощью мыши выделить строку в тексте. Отрезок при этом обычно (хотя это несущественно) горизонтальный, его начало находится перед первым символом выделяемого текста, а конец находится за последним символом. Отрыв пальца от экрана означает отпускание кнопки мыши и окончание выделения. Эта задача не может быть решена известными способами.
Действительно, раз концы произвольные, мы должны иметь доступ к точкам в приграничных областях экрана, возможно, с разных сторон экрана. Следовательно, взаимное расположение указателя и контрольной области должны изменяться во время движения пальца. Поэтому способы, описанные в документах US20150212698, US20100214218, US20060132460, US20160378251, не позволяют решить поставленную задачу, поскольку в них взаимное расположение указателя и контрольной области во время движения пальца не изменяется.
Способы, описанные в документах US5835079, US20110018806, US9582107, не позволяют решить поставленную задачу, поскольку в них для изменения взаимного расположение указателя и контрольной области требуется более одного пальца. Необходимость использовать в этих способах несколько пальцев является неустранимой и вытекает из признаков запатентованных изобретений.
Перечисленные автоматические способы (описанные в документах US20140313130, US6411283) не подходят, так как они вызывают скачкообразные изменения положения указателя, не позволяющие осуществить перемещение указателя по прямолинейной траектории с произвольными концами.
Ближе всего к решению данной задачи находится способ, указанный в последнем из указанных патентов (US9582107). Данное решение можно выбрать в качестве прототипа предлагаемого изобретения. Единственным условием задачи А, которое при использовании способа из патента US9582107 остаётся невыполненным, является использование одного пальца. Предлагаемое изобретение позволяет ограничиться одним пальцем.
Использование двух пальцев является нежелательным по следующим причинам:
1) Движение по перемещению указателя выполнять менее удобно, когда нужно пользоваться двумя пальцами, причём выполняющими разные действия - один палец всё время скользит по экрану, другой в это время опускается, скользит и поднимается.
2) С точки зрения интерфейсной реализации участие второго пальца для оперирования мышью вызывает дополнительные трудности. Мы имеем альтернативу - либо расширять контрольную область настолько, чтобы на ней без труда поместился и второй палец, причём на расстоянии от первого (ибо сенсорные устройства не распознают в качестве отдельных событий одновременные близкие касания), либо учитывать касание вторым пальцем экрана вне контрольной области. В последнем случае исключается независимая обработка касаний вне контрольной области во время оперирования мышью. Например, мы уже не сможем перемещать указатель мышью и одновременно прокручивать другим пальцем содержимое экрана.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Технической задачей, решаемой настоящим изобретением, является управление подвижным указателем на устройствах, в которые информация вводится через касания пальцами сенсорного экрана. Требуется обеспечить перемещение указателя по произвольным траекториям (в частности, прямолинейным), в том числе таким траекториям, концы которых находятся у краёв экрана. При этом перемещение точки касания должно вызывать равное перемещение указателя. Техническим результатом является возможность выполнить эту задачу одним пальцем без отрыва от экрана.
В предлагаемом способе, так же, как в прототипе, в процессе управления указателем выделяют режимы регулирования 1 и движения 2. Для переключения между режимами нужно подать соответствующую команду вычислительному устройству. Команды могут подаваться разными способами. В прототипе предлагается для подачи команды коснуться экрана другим пальцем. В данном изобретении команду переключения между режимами предлагается передавать через свойства вектор-функции движения (зависимости координат от времени) точки касания пальца с экраном - в этом и состоит сущность изобретения.
Отличие ТРЕАКТОРИИ движения пальца по экрану от ВЕКТОР-ФУНКЦИИ движения пальца по экрану состоит в том, что траектория связывает между собой две величины (X, Y), а вектор-функция - три величины (X, Y, t). Обычно программа, работающая на вычислительном устройстве, потребляет в качестве вводимых данных именно траекторию, то есть взаимосвязь двух величин. В вектор-функции есть третья величина, это означает, что вектор-функция содержит избыточную информацию. Поэтому использование информации, содержащейся в вектор-функции, теоретически позволяет ОДНОВРЕМЕННО с введением траектории в вычислительное устройство подавать этому устройству любую другую информацию. Например, предположим, что мы согласились использовать азбуку Морзе. Продвинули палец вдоль траектории, остановили, опять продвинули - время между остановками задаёт точки и тире. Одновременно вводится и траектория, и любой текст. Это один из бесконечного множества возможных способов передачи информации с использованием вектор-функции в дополнение к вводу траектории. Одним из применений такой информации может быть подача команд устройству. Ввод команд с помощью вектор-функции можно делать не только одновременно с вводом траектории, но и попеременно с ним.  В последнем случае в одной сплошной линии, по которой движется точка соприкосновения пальца с экраном, могут чередоваться куски, используемые для ввода траектории, с кусками, используемыми для кодирования команд. Куски второго рода обычно именуются жестами. В любом случае для подачи закодированных с помощью вектор-функции команд устройству ДОСТАТОЧНО одного пальца, и при этом палец может не отрываться от поверхности экрана.
Поскольку в данном способе взаимное расположение указателя и контрольной области изменяют, то мёртвые зоны на экране не возникают, и указатель может быть передвинут в любое место экрана - таким образом достигается выполнение технической задачи. А поскольку команду переключения между режимами передают через свойства вектор-функции точки касания пальца с экраном, то достигается возможность выполнить эту задачу одним пальцем без отрыва от экрана.
Таким образом, осуществление данного изобретения достаточно для получения технического результата.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Прилагаемый на фиг. 1 чертёж используется в качестве иллюстрации к описанию существующей реализации изобретения, ссылки на него содержатся в разделе под названием ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
В конкретной реализации для переключения из режима движения в режим регулирования используется специальный жест, выполняемый во время перемещения указателя тем же пальцем, который двигает контрольную область, и не влияющий на траекторию указателя. Этот способ осуществлён в программе Табула, которая работает на устройствах с сенсорным экраном под управлением ОС Андроид. Опишем подробно, как данный способ решает задачу А. Описание иллюстрируется Фиг. 1, где тонкой сплошной линией изображена траектория движения точки касания пальца с экраном (коротко - траектория пальца).
Для определённости предположим, что нужно выполнить перемещение указателя вдоль горизонтального отрезка прямой с началом в окрестности левого края экрана и с концом в окрестности правого края экрана (пунктирная линия АС на Фиг. 1). Также предположим, что перед началом перемещения указатель находится слева от контрольной зоны - это можно сделать известными способами.
Шаг 1. Палец опускается на контрольную зону (точка 1 на Фиг. 1), что соответствует нажатию кнопки мыши, и начинает движение по экрану слева направо. Изначально мышь находится в режиме движения, поэтому одновременно с движением пальца по экрану начинается движение указателя в том же направлении (участок AB пунктирной линии на Фиг. 1).
Шаг 2. Поскольку требуемая конечная точка траектории указателя находится в окрестности правого края экрана, мы не сможем её достичь, если сохранится расположение указателя слева от пальца (контрольной зоны). Поэтому мы должны выполнить переключение в режим регулирования взаимного расположения указателя и контрольной зоны. Для этого в произвольном месте до окончания траектории движения пальца необходимо начать жест, который, после его распознания, послужит программе сигналом о начале режима регулирования. Распознание жеста происходит в данной конкретной реализации (в программе Табула) при выполнении следующих условий:
а) произошло ускорение движения в первоначальном направлении (на протяжении доли сантиметра) - участок между точками 2 и 3 на траектории пальца
б) непосредственно после ускорения траектория движения пальца имела излом примерно под прямым углом - точка 3 на траектории пальца
в) после излома в движении пальца обнаружено направление, противоположное изначальному направлению - возврат (то есть, в данном случае палец в какой-то момент двигался справа налево) - точка 4 на траектории пальца.
Если программа после ускорения обнаруживает излом (выполнены условия а) и б)), то она приостанавливает движение указателя до того момента, когда будет ясно, выполнено ли условие в). Если условие в) выполнено, то распознаётся переход в режим 1, и указатель находится в том месте, которого он достиг во время прохождения пальца через точку излома (точка B на Фиг. 1) до тех пор, пока не произойдёт обратное переключение в режим 2. Если условие в) не выполнено, то через некоторое время указатель возобновляет движение от точки, в которой он приостановился, и догоняет то положение, которое он бы имел, если просто всё время следовал за пальцем.
Указанное сочетание условий, с одной стороны, позволяет не искажать требуемую траекторию движения курсора в тех случаях, когда переключение в режим 1 необходимо, с другой стороны, позволяет двигать курсор по сложным траекториям, в том числе с изломами. При движении даже по таким сложным траекториям обычно не выполняется хоть одно из условий а)- в), и переключения при этом не происходит.
После того, как программа переключилась в режим 1, мы можем перемещать палец (контрольную зону) сколько необходимо для того, чтобы установить такое взаимное расположение указателя и контрольной зоны, какое будет удобным для дальнейшего движения указателя. В данном конкретном случае контрольная зона должна переместиться с правой стороны от указателя на левую сторону.
Шаг 3. Когда установлено новое расположение указателя, необходимо опять переключиться в режим 2, чтобы возобновить движение указателя. Для подачи сигнала программе о переключении в этот режим также могут использоваться исключительно свойства вектор-функции движения точки касания пальца с экраном. В данной конкретной реализации (в программе Табула) переключение в режим 2 происходит при следующих условиях:
а) Если требуется возобновить движение в изначальном направлении, то переключение происходит сразу после излома траектории пальца в этом направлении (в точке 5 на Фиг. 1).
б) Другим способом переключения является приостановка движения пальца на долю секунды.
Шаг 4. Завершение перемещения указателя по оставшемуся участку заданного в условии задачи А отрезка (участок BC пунктирной линии на Фиг. 1). Поднятие пальца от поверхности экрана (в точке 6 на Фиг. 1), означающее отпускание кнопки мыши.
Внешне выполнение указанных шагов выглядит как просто прямолинейное движение пальцем по экрану с быстрой петлёй или завитушкой посредине движения. Указатель при этом движется строго прямолинейно с остановкой в момент выполнения завитушки.
Описанная реализация изобретения является одной из бесконечного числа возможных реализаций. Например, для передачи команды о переключении в режим 1 можно использовать сообщение «SOS», закодированное азбукой Морзе и переданное с помощью чередования интервалов движения и остановки пальца вдоль вводимой траектории. В последнем случае команда также будет передана через свойства вектор-функции движения точки касания пальца с экраном.