СПОСОБ И УСТРОЙСТВО ДЛЯ ИНЕРЦИОННОГО ПЕРЕМЕЩЕНИЯ ОКОННОГО ОБЪЕКТА Российский патент 2013 года по МПК G06F3/481 G06F3/486 G06F3/488 

Описание патента на изобретение RU2491610C1

Область техники, к которой относится изобретение

Настоящее изобретение относится к технологии разработки в области программного операционного интерфейса устройства с сенсорным экраном, в частности к способу и устройству для осуществления инерционного перемещения оконного объекта.

Уровень техники

В настоящее время программы мгновенной отправки сообщений через Интернет (Интернет-мессенджеры) используются большинством пользователей Интернета и становятся важным программным инструментом для пользователей. Программы мгновенной отправки сообщений широко применяются пользователями как для работы, так и для досуга и развлечений. Таким образом, имеется значительная потребность в программах мгновенной отправки сообщений, которые обладают простотой при использовании, стабильностью, безопасностью и другими аспектами.

По мере развития технологий постепенно становятся популярны такие сенсорные продукты, как телефон iPhone. Разработка с использованием инерции для получения ощущения материальности постепенно становится основным направлением.

В существующих разработках по использованию инерции для получения ощущения материальности пользователь может осуществлять инерционную прокрутку содержимого в списках и веб-страницах с линейной скоростью путем линейных операций касания, но не может осуществлять процесс с инерционным эффектом на основе «угловой скорости» при выполнении поворота.

Раскрытие изобретения

С учетом вышесказанного настоящее изобретение в основном имеет цель обеспечения способа и устройства для осуществления инерционного перемещения оконного объекта с целью реализации эффекта инерционного перемещения оконных объектов на основе линейной скорости и угловой скорости.

Для достижения цели техническое решение настоящего изобретения выполнено следующим образом.

Способ инерционного перемещения оконного объекта содержит:

A: контроль начальной операции касания устройства ввода, запись координат начального касания и времени касания и запуск первого таймера;

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

C: когда пользователь отпускает оконный объект, получение начальной линейной скорости и начальной угловой скорости оконного объекта и запуск второго таймера;

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

E: когда начальная линейная скорость и начальная угловая скорость, соответствующие текущему периоду второго таймера, меньше или равны нулю, процесс инерционного перемещения оконного объекта прекращается.

Кроме того, в вышеописанном способе пользователь может перетаскивать оконный объект с помощью устройства ввода посредством одной или множества точек касания; причем в случае множества точек касания величина смещения и величина поворота могут быть получены на основе двух точек касания с наименьшими номерами устройства.

Соответственно, настоящее изобретение также предлагает устройство для инерционного перемещения оконного объекта, содержащее

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

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

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

Кроме того, информация управления, формируемая модулем захвата точки касания, может содержать

начальную информацию управления, когда устройство ввода в начале касается оконного объекта, содержащую положение, время, номер устройства и идентификатор, отражающий начальное касание оконного объекта;

текущую информацию управления, когда устройство ввода перемещает оконный объект, содержащую положение, время, номер устройства и идентификатор, отражающий перетаскивание оконного объекта;

информацию управления для отпускания, когда устройство ввода отпускает оконный объект, содержащую положение, время, номер устройства и идентификатор, отражающий отпускание оконного объекта.

Кроме того, модуль обработки смещения может содержать

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

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

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

Краткое описание чертежей

На фиг.1 показана структурная диаграмма устройства для осуществления эффекта инерционного движения оконного объекта в соответствии с настоящим изобретением.

На фиг.2 показана векторная диаграмма получения величины смещения и величины поворота при условии одной точки касания.

На фиг.3 показана векторная диаграмма получения величины смещения и величины поворота при условии множества точек касания.

На фиг.4 показана диаграмма способа перемещения оконного объекта в соответствии с настоящим изобретением.

Осуществление изобретения

Основная идея настоящего изобретения заключается в следующем: выполнение операции по обеспечению ощущения материальности процессов, в которых при перемещении пользователем оконного объекта с помощью мыши или пальцем, после окончания пользователем операции перетаскивания, осуществляется реализация инерционного перемещения перемещаемого объекта с помощью модуля обработки инерции в соответствии с линейной скоростью и угловой скоростью при отпускании перетаскивающей кнопки мыши или поднятии пальца.

Перемещаемый объект в настоящем описании означает экземпляр оконного объекта, обладающий возможностью отвечать на операцию перетаскивания мышью или пальцем на сенсорном экране; оконный объект имеет свои собственные интерфейсный атрибут, атрибут способа и атрибут данных и может отвечать на инициированное событие в оконном интерфейсе. Например, беря в качестве примера операционную систему Windows, оконный объект может быть окном для отображения контактной информации и оконный объект имеет функцию событий, отвечающую на операции щелчка мышью и перемещения, совершаемые пользователем, и имеет такие атрибуты интерфейса, как ширина, высота, угол поворота при принятии центра окна в качестве центра окружности, горизонтальная координата (CenterX) центра окна и вертикальная координата (CenterY) центра окна.

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

Для достижения более понятного описания технического решения и преимуществ настоящего изобретения, настоящее описание детализировано со ссылками на сопровождающие чертежи и варианты осуществления.

На фиг.1 показана структурная схема устройства для осуществления эффекта инерционного движения оконного объекта в соответствии с настоящим изобретением; устройство содержит модуль 101 захвата точки касания, модуль 102 обработки перетаскивания и модуль 103 обработки инерции.

Модуль 101 захвата точки касания выполнен с возможностью осуществления захвата операции перетаскивания оконного объекта на экране посредством устройства ввода, и формирования соответствующей информации управления.

Устройство ввода включает сенсорный экран, мышь, WordPad и тому подобные устройства, которые могут осуществлять перемещение окна.

Информация управления включает: (1) начальную информацию управления, когда устройство ввода в начале касается оконного объекта, содержащую положение, время, номер устройства, идентификатор, отражающий начальное касание оконного объекта и т.д.; (2) текущую информацию управления, когда устройство ввода перемещает оконный объект, содержащую положение, время, номер устройства идентификатор, отражающий перетаскивание оконного объекта и т.д.; (3) информацию управления для отпускания, когда устройство ввода отпускает оконный объект, содержащую положение, время, номер устройства, идентификатор, отражающий отпускание оконного объекта и т.д.

Модуль 101 захвата точки касания представляет собой модуль интерфейса между устройством в соответствии с настоящим изобретением и операционной системой; модуль контролирует операции операционной системы с оконными объектами в режиме реального времени, получает информацию управления, формируемую устройством ввода, и направляет информацию управления в модуль обработки перетаскивания, который реализует эффект перетаскивания оконного объекта.

Например, когда мышь нажата и перемещается, или когда палец осуществляет нажатие и перемещается, модуль 101 захвата точки касания захватывает событие нажатия мыши или касания пальца, и направляет начальную информацию управления в модуль 102 обработки перетаскивания, причем начальная информация управления включает: координаты положения точки касания, текущее время, номер устройства, идентификатор, отражающий то, что нажата левая кнопка мыши или произошло нажатие пальцем для подготовки перетаскивания оконного объекта и т.д. Номер устройства используется для различения различных устройств ввода; в случае многоточечного касания, например, когда пользователь использует два пальца для касания оконного объекта, номера устройства, соответствующие пальцам, которые пришли в соприкосновение с сенсорным экраном в разное время, являются разными.

Модуль 102 обработки перетаскивания выполнен с возможностью реализации эффекта перетаскивания оконного объекта в соответствии с информацией управления, направленной из модуля 101 захвата точки касания.

Модуль 102 обработки перетаскивания содержит первый модуль обработки перемещения и модуль обработки начальной скорости.

Первый модуль обработки перемещения выполнен с возможностью запуска первого таймера Таймер1 при приеме начальной информации управления, направленной из модуля 101 захвата точки касания, с возможностью получения, в соответствии с текущей информацией управления, направленной из модуля 101 захвата точки касания, величины смещения и величины поворота оконного объекта, соответствующих текущему периоду таймера Таймер1, при инициировании таймера Таймер1, и с возможностью направления полученных величины смещения и величины поворота в оконный объект.

Модуль обработки начальной скорости выполнен с возможностью получения начальной линейной скорости и начальной угловой скорости после приема информации управления для отпускания, направленной из модуля 101 захвата точки касания, и с возможностью направления полученных начальной линейной скорости и начальной угловой скорости в модуль обработки инерции.

Способ реализации эффекта перетаскивания оконного объекта следующий

(1) После приема начальной информации управления, направленной из модуля 101 захвата точки касания, модуль 102 обработки перетаскивания записывает информацию о координатах (X0, Y0) положения начальной точки касания, время T0 начального касания и номер устройства.

(2) При перемещении мыши после нажатия или перемещении пальца после нажатия модуль 102 обработки перетаскивания записывает положение (Xi, Yi) мыши или пальца, текущее время Ti и номер устройства через каждый период Δt, получает величину смещения и величину поворота по отношению к предыдущему моменту времени записи и направляет относительную величину перемещения и относительную величину поворота в оконный объект; затем оконный объект устанавливает свое собственное значение атрибута для реализации эффекта перетаскивания.

Например, атрибут координат центра оконного объекта представляет собой (CenterX, CenterY), а атрибут угла поворота представляет собой Angle; когда текущие величина смещения и величина поворота, которые получены оконным объектом за период Ti равны (ΔX, ΔY) и α, соответственно, оконный объект устанавливает свои собственные значение атрибута координат центра и значение атрибута угла поворота следующими:

CenterX=CenterX+ΔX

CenterY=CenterY+ΔY

Angle=Angle+α

Оконный объект запускает функцию перерисовки своего интерфейса путем установки значения атрибута координат центра и значения атрибута угла поворота так, чтобы оконный объект отображался в положении с новыми координатами и с новым углом поворота.

(3) При отпускании устройством ввода оконного объекта, то есть когда отпускается кнопка мыши или поднимается палец, модуль 101 захвата точки касания направляет информацию управления для отпускания в модуль 102 обработки перетаскивания; модуль 102 обработки перетаскивания получает начальную линейную скорость и начальную угловую скорость в соответствии с величиной смещения и величиной поворота, которые получены во время последнего периода таймера Таймер1 перед отпусканием.

При получении величины смещения, величины поворота, начальной линейной скорости и начальной угловой скорости возможны два случая, т.е. случай одноточечного касания и случай многоточечного касания.

(1) Как показано на фиг.2 в случае одноточечного касания способ получения величины смещения, величины поворота, начальной линейной скорости и начальной угловой скорости включает в себя следующее:

величина смещения между периодами Ti-1 и Ti равна: (ΔX, ΔY)=(Xi-Xi-1, Yi-Yi-1),

где (Xi, Yi) является вектором координат точки касания, соответствующей периоду Ti таймера Таймер 1, a (Xi-1, Yi-1) является вектором координат точки касания, соответствующей периоду Ti-1 таймера Таймер1;

величина поворота между периодами Ti-1 и Ti равна: α=arccos[uivi/(|ui||vi|)];

причем координаты центра поворота являются координатами (Cx, Cy) центра оконного объекта; ui является вектором между координатами точки касания, соответствующей периоду Ti таймера Таймер1 и координатами центра поворота, то есть ui=(Xi-Cx, Yi-Cy); vi является вектором между координатами точки касания, соответствующей периоду Ti-1 таймера Таймер1 и координатами центра поворота, то есть vi=(Xi-1-Cx, Yi-1-Cy);

начальная линейная скорость V при отпускании устройством ввода оконного объекта равна:

V=(Xn-Xn-1, Yn-Yn-1)/(Tn-Tn-1)=(Xn-Xn-1, Yn-Yn-1)/Δt,

где (Xn, Yn) является вектором координат точки касания, соответствующей последнему периоду Tn таймера Таймер1, когда устройство ввода отпускает оконный объект; (Xn-1, Yn-1) является вектором координат точки касания, соответствующей периоду Tn-1;

если Δt устанавливается как стандартная единица времени, то вышеуказанное выражение может быть упрощено в следующем виде:

V=(Xn-Xn-1, Yn-Yn-1).

Способ получения начальной угловой скорости Va при отпускании устройством ввода оконного объекта представляет собой

Va=arccos[uvn/(|un||vn|)]/(Tn-Tn-1)=arccos[uvn/(|un||vn|)]/Δt,

где un является вектором между координатами (Xn, Yn) точки касания, соответствующей периоду Tn таймера Таймер1 и координатами (СХ, СУ) центра поворота, то есть un=(Xn-Cx, Yn-Cy), a vn является вектором между координатами точки касания, соответствующей периоду Tn-1 таймера Таймер 1 и координатами центра поворота, то есть vn=(Xn-1-Cx, Yn-1-Cy);

если Δt устанавливается как стандартная единица времени, то вышеуказанное выражение может быть упрощено в следующем виде:

Va=arccos[uvn/(|un||vn|)].

(2) Как показано на фиг.3, в случае многоточечного касания только две точки касания с наименьшими номерами устройства принимаются к рассмотрению, и способ получения величины смещения, величины поворота, начальной линейной скорости и начальной угловой скорости включает следующее:

В предположении, что координаты двух точек касания с наименьшими номерами устройства, соответствующие периоду Ti-1 таймера Таймер 1, равны (Xi-1,d0, Yi-1,d0) и (Xi-1,d1, Yi-1,d1), а координаты, соответствующие периоду Ti, равны (Xid0, Yi,d0) и (Xi,d1, Yi,d1), где d0 и d1 представляют собой номера устройства, то векторы координат центров двух точек касания во время периода Ti-1 и периода Ti, соответственно, равны:

(CXi, CYi)=((Xi,d0+Xi,d1)/2, (Yi,d0+Yi,d1)/2),

(CXi-1, CYi-1)=((Xi-1,d0+Xi-1,d1)/2, (Yi-1,d0+Yi-1,d1)/2).

Величина смещения между периодами Ti-1 и Ti равна:

(ΔХ, ΔY)=(CXi-CXi-1, CYi-CYi-1);

Когда устройство ввода отпускает оконный объект, начальная линейная скорость, соответствующая периоду Tn таймера Таймер 1, равна:

V=(CXn-CXn-1, CYn-CYn-1)/(Tn-Tn-1)=(CXn-CXn-1, CYn-CYn-1)/Δt,

где (CXn, CYn) и (CXn-1, CYn-1) являются координатами центров векторов, образуемых двумя точками касания с наименьшими номерами устройства, соответственно, во время последнего периода Tn и периода Tn-1 таймера Таймер1, когда устройство ввода отпускает оконный объект; Δt является периодом отсчета времени таймера Таймер1.

Если Δt устанавливается как стандартная единица времени, то вышеуказанное выражение может быть упрощено в следующем виде:

V=(CXn-CXn-1, CYn-CYn-1).

В случае многоточечного касания при получении величины поворота только две точки касания с наименьшими номерами устройства принимаются во внимание, причем точка пересечения линии, соединяющей две точки в течение периода Ti-1, с линией, соединяющей две точки касания в течение периода Ti служит в качестве центра для получения величины поворота. Координаты двух точек касания, соответствующих периоду Ti, равны (Xi,d0, Yi,d0) и (Xi,d1, Yi,d1), а координаты двух точек касания, соответствующих периоду Ti-1, равны (Xi,d0, Yi,d0) и (Xi,d1, Yi,d1).

Координата центра поворота для получения величины поворота равна:

(Cx, Cy)=((Xi,d0+Xi,d1)/2, (Yi,d0+Yi,d1)/2).

Величина поворота между периодами Ti-1 и Ti равна: αi=arccos[uvi/(|ui||vi|)],

где ui является вектором (Xi,d0-Xi,d1) и (Yi,d0-Yi,d1), образуемым двумя точками касания с наименьшими номерами устройства, соответствующим периоду Ti таймера Таймер1, vi является вектором (Xi-1,d0-Xi-1,d1, Yi-1,d0-Yi-1,d1), образуемым двумя точками касания с наименьшими номерами устройства, соответствующим периоду Ti-1 таймера Таймер1.

Когда устройство ввода отпускает оконный объект, начальная угловая скорость Va, соответствующая величине поворота для периода Tn таймера Таймер1, равна:

Va=arccos[uvn/(|un||vn|)]/(Tn-Tn-1)=arccos[uvn/(|un||vn|)]/Δt,

где un является вектором (Xn,d0-Xn,d1, Yn,d0-Yn,d1), образуемым двумя точками касания с наименьшими номерами устройства, соответствующими последнему периоду Tn таймера Таймер1, когда устройство ввода отпускает оконный объект, a vn является вектором (Xn-1,d0-Xn-1,d1, Yn-1,d0-Ynl,d1), образуемым двумя точками касания с наименьшими номерами устройства, соответствующими периоду Tn-1.

Если Δt устанавливается как стандартная единица времени, то вышеуказанное выражение может быть упрощено в следующем виде:

Va=arccos[uvn/(|un||vn|)].

Модуль 103 обработки инерции выполнен с возможностью реализации эффекта инерционного перемещения после отпускания устройством ввода оконного объекта, то есть после того, как пользователь закончил операцию перетаскивания. После приема информации управления для отпускания, направленной из модуля 102 обработки перетаскивания, модуль 103 обработки инерции запускает второй таймер Таймер2 для инициирования функции таймера через каждый период времени Tg, получает, в соответствии с начальной линейной скоростью и начальной угловой скоростью, соответствующих текущему периоду таймера Таймер 2, величину смещения и величину поворота в течение текущего периода функции таймера и затем направляет полученные величину смещения и величину поворота в течение текущего периода в оконный объект; затем оконный объект устанавливает свои собственные атрибуты так, чтобы осуществить эффект инерционного перемещения.

Способ получения начальной линейной скорости, соответствующей периоду Ti таймера Таймер2, содержит:

Vi=Vi-1-Vdec*Tg,

где Vdec является снижением линейной скорости и может быть заранее установлено пользователем или системой в соответствии с фактической ситуацией, что эквивалентно регулированию коэффициента трения линейной скорости; в первом периоде таймера Таймер2 после того, как устройство ввода отпустит оконный объект, V1 является начальной линейной скоростью V, направленной из модуля 102 обработки перетаскивания; Tg является периодом таймера Таймер 2 и может быть заранее установлено пользователем или системой.

Способ получения начальной угловой скорости, соответствующей периоду Ti таймера Таймер 2, содержит:

Vai=Vai-1-Vadec*Tg,

где Vadec является снижением угловой скорости и может быть заранее установлено пользователем или системой в соответствии с фактической ситуацией, что эквивалентно регулированию коэффициента трения угловой скорости; в первом периоде таймера Таймер2 после того, как устройство ввода отпустит оконный объект, Va1 является начальной угловой скоростью Va, направленной из модуля 102 обработки перетаскивания.

Величина смещения, соответствующая периоду Ti таймера Таймер2, составляет:

(ΔX, ΔY)=(Vi-Vdec*Tg)*Tg=(Vi·X-Vdec*Tg, VY-Vdec*Tg)*Tg,

где Vi является вектором начальной линейной скорости, соответствующей периоду Ti таймера Таймер2, а Tg является периодом отсчета таймера Таймер2.

Величина поворота, соответствующая периоду Т таймера Таймер2, составляет:

αi=(Vai-Vadec*Tg)*Tg,

где Vai является начальной угловой скоростью, соответствующей периоду Ti таймера Таймер2.

Если Tg равен Δt и Δt устанавливается как стандартная единица времени, то вышеуказанные выражения могут быть упрощены в следующем виде:

(ΔX, ΔY)=(VX-Vdec, VY-Vdec),

αi=(Vai-Vadec),

то есть, если Tg=Δt служит в качестве единицы времени выборки скорости, обработки инерции и обновления положения оконного объекта, то тогда объемы вычислений могут быть значительно снижены.

Когда величина смещения и величина поворота инерциального перемещения оконного объекта в течение текущего периода, полученные с помощью вышеописанных уравнений, становятся меньше или равны нулю, то инерционный процесс завершается.

После приема величины смещения и величины поворота, направленных из модуля 103 обработки инерции, оконный объект устанавливает собственные значение атрибута координат центра и значение атрибута угла поворота следующими:

CenterX=CenterX+ΔX,

CenterY=CenterY+ΔY,

Angle=Angle+α.

Установкой значения атрибута координат центра и значения атрибута угла поворота инициируется функция перерисовки интерфейса так, чтобы оконный объект был показан в положении с новыми координатами и с новым углом поворота, тем самым реализуя эффект инерционного перемещения.

На фиг.4 показана диаграмма способа перемещения оконного объекта в соответствии с настоящим изобретением, содержащего следующие шаги.

Шаг 401: контроль начальную операцию касания устройства ввода и получение начальной информации управления.

На этом шаге начальная операция касания устройства ввода контролируется модулем захвата точки касания и модуль захвата точки касания направляет начальную информацию управления в модуль обработки перетаскивания после определения начальной операции касания.

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

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

Начальная информация управления содержит положение начальной точки касания, время, номер устройства, код кнопки и т.д.

Шаг 402: запись начальной информации управления, запуск первого таймера Таймер1, установка периода Δt таймера, где Δt заранее установлено пользователем или системой в соответствии с фактической ситуацией.

После приема начальной информации управления, направленной из модуля захвата точки касания, модуль обработки перетаскивания записывает начальную информацию управления и запускает таймер Таймер1. Таймер Таймер1 используется для периодического инициирования функции события для расчета величины смещения (ΔX, ΔY) и величины поворота (α) оконного объекта так, чтобы получить величину смещения и величину поворота, сформированные на экране устройством ввода за текущий период.

Шаг 403: когда период отсчета таймера Таймер1 закончился, получение текущей информации управления и получение величины смещения и величины поворота, сформированных на экране пользователем посредством устройства ввода за текущий период.

Предварительным условием для выполнения этого шага является то, что пользователь продолжает операцию нажатия на устройстве ввода и останавливает или перетаскивает оконный объект; модуль захвата точки касания преобразует контролируемое системное сообщение, сформированное устройством ввода, в текущую информацию управления (включающую положение, время, номер устройства и т.д.) и непрерывным образом направляет текущую информацию в модуль обработки перетаскивания; модуль обработки перетаскивания обновляет локально кешированную текущую информацию управления в режиме реального времени и записывает текущую информацию управления при окончании каждого периода отсчета таймера Таймер1 для формирования истории информации управления; история может отражать траекторию, которая также может называться жестом, движения устройства ввода на экране, и затем происходит получение величины смещения и величины поворота оконного объекта, соответствующих текущему периоду таймера Таймер1.

Шаг 404: оконный объект корректирует свои положение и угол поворота на экране в соответствии с полученными величиной смещения и величиной поворота.

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

Шаг 405: определение, не отпустило ли устройство ввода оконный объект, то есть не отпустил ли пользователь кнопку мыши или не поднял ли свой палец для окончания операции перетаскивания; если это так, то осуществляют шаг 406, в обратном случае выполняют шаг 403.

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

Шаг 406: при окончании операции перетаскивания получение начальной линейной скорости V и начальной угловой скорости Va, соответствующих последнему периоду Tn таймера Таймер1, и остановка таймера Таймер1.

Модуль обработки перетаскивания получает, в соответствии с историей информации управления, начальную линейную скорость V и начальную угловую скорость Va, соответствующие последнему периоду Tn таймера Таймер1, когда устройство ввода отпустило оконный объект; способ получения описан выше и здесь не повторяется; модуль обработки перетаскивания направляет полученные начальную линейную скорость V и начальную угловую скорость Va в модуль обработки инерции.

Шаг 407: запуск второго таймера Таймер2 и установка периода отсчета как Tg.

На этом шаге после приема V и Va модуль обработки инерции запускает второй таймер Таймер2, причем таймер Таймер2 используется для реализации эффекта инерционного перемещения после того, как устройство ввода отпускает оконный объект.

Шаг 408: при окончании каждого периода отсчета таймера Таймер2 получение текущих величины смещения и величины поворота оконного объекта в соответствии со снижением линейной скорости Vdec и снижением угловой скорости Vadec, запись положения в текущий момент и вычисление начальной линейной скорости V и начальной угловой скорости Va для следующего периода отсчета.

На этом шаге модуль обработки инерции получает в соответствии с заранее установленными Vdec и Vadec величину смещения и величину поворота, используемые для продолжения перемещения в текущем периоде отсчета таймера Таймер2 после того, как устройство ввода отпустило оконный объект. Способ получения описан выше, поэтому здесь он не повторяется.

Способ получения начальной линейной скорости V и начальной угловой скорости Va для следующего периода отсчета таймера Таймер2 следующий:

Vi=Vi-1-Vdec*Tg; Vai=Vai-1-Vadec*Tg.

Шаг 409: определение того, не закончено ли инерционное перемещение; если это так, то процесс заканчивается, в противном случае выполняется шаг 410.

Шаг определения того, не закончено ли инерционное перемещение, содержит: определение, достигли ли Vi и Vai полученные на шаге 408, значения меньше или равного нулю; если так, то таймер Таймер2 останавливается и процесс инерционного перемещения заканчивается; если одно значение меньше или равно нулю, а другое значение все еще больше нуля, то по-прежнему необходимо осуществлять инерционный процесс для другого значения. Например, если V, меньше или равно нулю, a Vai больше нуля, то в текущий период и в последующий период таймера Таймер2 величина смещения равна нулю, а величина поворота не равна нулю; процесс инерционного перемещения не заканчивается до тех пор, пока оба значения Vi и Vai не станут меньше или равны нулю.

Шаг 410: оконный объект корректирует свое положение и угол поворота на экране в соответствии с полученными величиной смещения и величиной поворота так, чтобы реализовать эффект инерционного перемещения; затем снова выполняется шаг 408.

Вышеописанное является лишь предпочтительным вариантом осуществления настоящего изобретения и не предназначено для ограничения объема охраны настоящего изобретения.

Похожие патенты RU2491610C1

название год авторы номер документа
СПОСОБ И УСТРОЙСТВО ДЛЯ ПЕРЕМЕЩЕНИЯ КОНТЕНТА В ТЕРМИНАЛЕ 2013
  • Ли Ки Вон
  • Ким Санг Хеон
RU2643654C2
СПОСОБ ОПРЕДЕЛЕНИЯ МЕСТОПОЛОЖЕНИЯ ПОДВИЖНОГО ОБЪЕКТА ПРИ НАВИГАЦИОННЫХ ИЗМЕРЕНИЯХ 2012
  • Тельный Андрей Викторович
RU2529016C1
СПОСОБ КОНТРОЛЯ МЕСТОПОЛОЖЕНИЯ БУРОВОГО ДОЛОТА В ПРОЦЕССЕ БУРЕНИЯ 2006
  • Ерохин Геннадий Николаевич
  • Майнагашев Сергей Маркович
  • Бортников Павел Борисович
  • Кузьменко Александр Павлович
  • Шмаков Федор Дмитриевич
  • Рожков Михаил Владимирович
RU2305298C1
Способ определения координат наземного колесного объекта и устройство для его осуществления 1990
  • Григораж Юрий Петрович
  • Паршаков Валерий Константинович
  • Горбачев Владимир Михайлович
  • Сдвижков Анатолий Иванович
  • Кошелева Ирина Анатольевна
  • Медведев Владимир Иванович
SU1818534A1
РАДИОГОЛОГРАФИЧЕСКИЙ СПОСОБ ОПРЕДЕЛЕНИЯ ДИАГРАММЫ НАПРАВЛЕННОСТИ АНТЕННЫ В ДИАПАЗОНЕ ЧАСТОТ 1994
  • Ковалев Игорь Павлович
RU2089921C1
Способ поверки стрелочного измерительного прибора и устройство для его осуществления 1989
  • Большаченкова Светлана Николаевна
  • Карелин Владимир Павлович
  • Козлов Александр Венедиктович
  • Козлова Надежда Владимировна
  • Малярчук Анатолий Миронович
  • Месяц Владимир Васильевич
SU1753432A1
РАДИОТЕХНИЧЕСКАЯ СИСТЕМА ОПРЕДЕЛЕНИЯ КООРДИНАТ 2020
  • Панов Владимир Петрович
  • Панов Константин Владимирович
  • Панов Антон Владимирович
  • Приходько Виктор Владимирович
RU2738641C1
Способ определения угловой ориентации летательного аппарата 2024
  • Богдановский Сергей Валерьевич
  • Зюзин Алексей Владимирович
  • Севидов Владимир Витальевич
  • Симонов Алексей Николаевич
RU2821640C1
СПОСОБ АДАПТИВНОЙ МАСКИРОВКИ ПОДВИЖНЫХ ОБЪЕКТОВ 2009
  • Иванов Владимир Алексеевич
  • Белов Андрей Сергеевич
  • Стародубцев Юрий Иванович
  • Гречишников Евгений Владимирович
  • Милый Дмитрий Владимирович
  • Иванов Иван Владимирович
  • Карпов Александр Эдуардович
RU2412421C1
РАДИОТЕХНИЧЕСКАЯ СИСТЕМА ОПРЕДЕЛЕНИЯ КООРДИНАТ 2020
  • Панов Владимир Петрович
  • Приходько Виктор Владимирович
RU2732192C1

Иллюстрации к изобретению RU 2 491 610 C1

Реферат патента 2013 года СПОСОБ И УСТРОЙСТВО ДЛЯ ИНЕРЦИОННОГО ПЕРЕМЕЩЕНИЯ ОКОННОГО ОБЪЕКТА

Изобретение относится к технологии разработки в области программного операционного интерфейса устройства с сенсорным экраном. Технический результат заключается в реализации эффекта инерционного перемещения оконного объекта на основании линейной скорости и угловой скорости, что способствует облегчению выполнения сенсорных операций, упрощая использование программного обеспечения конечного устройства и улучшая восприятие пользователя. Такой результат достигается за счет того, что когда устройство ввода отпускает перетаскиваемый оконный объект, получают начальную линейную скорость и начальную угловую скорость и затем используют снижение линейной скорости и снижение угловой скорости для получения величины смещения и величины поворота, соответствующих каждому периоду обработки. После отпускания кнопкой мыши или убирания пальца с сенсорного экрана моделируется эффект инерционного перемещения оконного объекта. 2 н. и 8 з.п. ф-лы, 4 ил.

Формула изобретения RU 2 491 610 C1

1. Способ инерционного перемещения оконного объекта, содержащий следующие шаги:
A: контролируют начальную операцию касания устройства ввода, записывают координаты начального касания и время касания и запускают первый таймер;
B: в процессе перетаскивания оконного объекта периодически инициируют посредством первого таймера событие получения величины смещения и величины поворота, которые создаются на экране пользователем с помощью устройства ввода, по отношению к предыдущему моменту времени, и полученные величину смещения и величину поворота направляют в оконный объект;
C: когда пользователь отпускает оконный объект, получают начальную линейную скорость и начальную угловую скорость оконного объекта и запускают второй таймер;
D: на основе начальной линейной скорости и начальной угловой скорости периодически инициируют посредством второго таймера событие получения текущих величины смещения и величины поворота оконного объекта в соответствии со снижением линейной скорости и снижением угловой скорости, и полученные текущие величину смещения и величину поворота направляют в оконный объект;
E: если начальная линейная скорость и начальная угловая скорость, соответствующие текущему периоду второго таймера, меньше или равны нулю, прекращают процесс инерционного перемещения оконного объекта.

2. Способ по п.1, отличающийся тем, что пользователь перетаскивает оконный объект с помощью устройства ввода посредством одной или множества точек касания; причем в случае множества точек касания величину смещения и величину поворота получают на основе двух точек касания с наименьшими номерами устройства.

3. Способ по п.2, отличающийся тем, что в случае одной точки касания для получения величины смещения и величины поворота на шаге B:
определяют величину смещения между периодами Ti-1 и Ti как (ΔX, ΔY)=(Xi-Xi-1, Yi-Yi-1), где (Xi, Yi) является вектором координат точки касания, соответствующей периоду Ti первого таймера, a (Xi-1, Yi-1) является вектором координат точки касания, соответствующей периоду Ti-1 первого таймера,
определяют величину поворота между периодами Ti-1 и Ti как αi=arccos[ui·vi/(|ui||vi|)], причем координаты центра поворота являются координатами (Cx, Cy) центра оконного объекта, ui, является вектором между координатами точки касания, соответствующей периоду Ti первого таймера, и координатами центра поворота, то есть ui=(Xi-Cx, Yi-Cy); vi является вектором между координатами точки касания, соответствующей периоду Ti-1 первого таймера, и координатами центра поворота, то есть vi=(Xi-1-Cx, Yi-1-Cy);
и для получения начальной линейной скорости V и начальной угловой скорости Va на шаге C:
определяют V как V=(Xn-Xn-1, Yn-Yn-1)/(Tn-Tn-1)=(Xn-Xn-1, Yn-Yn-1)/Δt, где (Xn, Yn) является вектором координат точки касания, соответствующей последнему периоду Tn первого таймера, когда устройство ввода отпускает оконный объект; (Xn-1, Yn-1) является вектором координат точки касания, соответствующей периоду Tn-1; Δt является периодом отсчета времени первого таймера;
определяют Va как Va=arccos[un·vn/(|un||vn|)]/(Tn-Tn-1)=arccos[un·vn/(|un||vn|)]/Δt, где un является вектором между координатами (Xn, Yn) точки касания, соответствующей периоду Tn первого таймера, и координатами (Cx, Cy) центра поворота, то есть un=(Xn-Cx, Yn-Cy), когда устройство ввода отпускает оконный объект, a vn является вектором между координатами точки касания, соответствующей периоду Tn-1 первого таймера, и координатами центра поворота, то есть vn=(Xn-1-Cx, Yn-1-Cy).

4. Способ по п.2, отличающийся тем, что в случае множества точек касания для получения величины смещения и величины поворота на шаге B:
определяют величину смещения между периодами Ti-1 и Ti как (ΔX, ΔY)=(CXi-CXi-1, CYi-CYi-1), где (CXi, CY1) и (CXi-1, CYi-1) являются координатами центров двух точек касания с наименьшими номерами устройства, соответствующие периоду Ti и периоду Ti-1 первого таймера соответственно;
определяют величину поворота между периодами Ti-1 и Ti как αi=arccos[ui·vi/(|ui||vi|)], где ui является вектором, образуемым двумя точками касания с наименьшими номерами устройства, соответствующими периоду Ti первого таймера, vi является вектором, образуемым двумя точками касания с наименьшими номерами устройства, соответствующими периоду Ti-1 первого таймера;
и для получения V и Va на шаге C:
определяют V как V=(CXn-CXn-1, CYn-CYn-1)/(Tn-Tn-1)=(CXn-CXn-1, CYn-CYn-1)/Δt, где (CXn, CYn) и (CXn-1, CYn-1) являются координатами центров векторов, образуемых двумя точками касания с наименьшими номерами устройства соответственно во время последнего периода Tn и периода Tn-1 первого таймера, когда устройство ввода отпускает оконный объект; Δt является периодом отсчета времени первого таймера;
определяют Va как Va=arccos[un·vn/(|un||vn|)]/(Tn-Tn-1)=arccos[un·vn/(|un||vn|)]/Δt, где un является вектором, образуемым двумя точками касания с наименьшими номерами устройства, соответствующими последнему периоду Tn первого таймера, когда устройство ввода отпускает оконный объект, a vn является вектором, образуемым двумя точками касания с наименьшими номерами устройства, соответствующими периоду Tn-1 первого таймера.

5. Способ по любому из пп.1-4, отличающийся тем, что для получения текущих величины смещения и величины поворота оконного объекта в соответствии со снижением линейной скорости и снижением угловой скорости на шаге D:
определяют величину смещения, соответствующую периоду Ti второго таймера, как (ΔX, ΔY)=(Vi-Vdec*Tg)*Tg;
определяют величину поворота, соответствующую периоду Тi второго таймера, как αi,=(Vai-Vadec*Tg)*Tg,
где Vdec является снижением линейной скорости, Vadec является снижением угловой скорости, Vi является начальной линейной скоростью, соответствующей периоду Ti второго таймера, Vai является начальной угловой скоростью, соответствующей периоду Ti второго таймера, Tg является периодом отсчета второго таймера; начальная линейная скорость и начальная угловая скорость, соответствующие первому периоду второго таймера после того, как устройство ввода отпустило оконный объект, являются величинами, получаемыми на шаге C соответственно.

6. Устройство для инерционного перемещения оконного объекта, содержащее
модуль захвата точки касания, выполненный с возможностью захвата операции перетаскивания оконного объекта на экране посредством устройства ввода и формирования соответствующей информации управления;
модуль обработки перетаскивания, выполненный с возможностью реализации эффекта перетаскивания оконного объекта в соответствии с информацией управления, направленной из модуля захвата точки касания, получения начальной линейной скорости и начальной угловой скорости, когда устройство ввода отпускает оконный объект, и направления полученных начальной линейной скорости и начальной угловой скорости в модуль обработки инерции;
модуль обработки инерции, выполненный с возможностью реализации эффекта инерционного перемещения на основе начальной линейной скорости и начальной угловой скорости, направленных из модуля обработки перетаскивания, в соответствии со снижением линейной скорости и снижением угловой скорости.

7. Устройство по п.6, отличающееся тем, что информация управления, формируемая модулем захвата точки касания, включает
начальную информацию управления, когда устройство ввода в начале касается оконного объекта, содержащую положение, время, номер устройства и идентификатор, отражающий начальное касание оконного объекта;
текущую информацию управления, когда устройство ввода перемещает оконный объект, содержащую положение, время, номер устройства и идентификатор, отражающий перетаскивание оконного объекта;
информацию управления для отпускания, когда устройство ввода отпускает оконный объект, содержащую положение, время, номер устройства и идентификатор, отражающий отпускание оконного объекта.

8. Устройство по п.6 или 7, отличающееся тем, что модуль обработки перетаскивания содержит
первый модуль обработки перемещения, выполненный с возможностью запуска первого таймера при приеме начальной информации управления, направленной из модуля захвата точки касания, с возможностью получения в соответствии с текущей информацией управления, направленной из модуля захвата точки касания, величины смещения и величины поворота оконного объекта, соответствующих текущему периоду первого таймера при инициировании первого таймера, и с возможностью направления полученных величины смещения и величины поворота в оконный объект; и
модуль обработки начальной скорости, выполненный с возможностью получения начальной линейной скорости и начальной угловой скорости после приема информации управления для отпускания, направленной из модуля захвата точки касания, и с возможностью направления полученных начальной линейной скорости и начальной угловой скорости в модуль обработки инерции.

9. Устройство по п.8, отличающееся тем, что в случае одной точки касания первый модуль обработки перемещения выполнен с возможностью получения величины смещения и величины поворота следующим образом: величина смещения между периодами Ti-1 и Ti равна (ΔX, ΔY)=(Xi-Xi-1, Yi-Yi-1), где Xi, Yi является вектором координат точки касания, соответствующей периоду Ti первого таймера, a Xi-1, Yi-1 является вектором координат точки касания, соответствующей периоду Ti-1 первого таймера,
величина поворота между периодами Ti-1 и Ti равна αi=arccos[ui·vi/(|ui||vi|)], причем координаты центра поворота являются координатами (Cx, Cy) центра оконного объекта, ui является вектором между координатами точки касания, соответствующей периоду Ti первого таймера, и координатами центра поворота, то есть ui=(Xi-Cx, Yi-Cy); vi является вектором между координатами точки касания, соответствующей периоду Ti-1 первого таймера, и координатами центра поворота, то есть vi=(Xi-1-Cx, Yi-1-Cy);
модуль обработки начальной скорости выполнен с возможностью получения начальной линейной скорости V и начальной угловой скорости Va следующим образом:
V=(Xn-Xn-1, Yn-Yn-1)/(Tn-Tn-1)=(Xn-Xn-1, Yn-Yn-1)/Δt, где Xn, Yn является вектором координат точки касания, соответствующей последнему периоду Tn первого таймера, когда устройство ввода отпускает оконный объект; Xn-1, Yn-1 является вектором координат точки касания, соответствующей периоду Tn-1; Δt является периодом отсчета времени первого таймера;
Va=arccos[un·vn/(|un||vn|)]/(Tn-Tn-1)=arccos[un·vn/(|un||vn|)]/Δt, где un является вектором между координатами (Xn, Yn) точки касания, соответствующей периоду Tn первого таймера, и координатами (Cx, Cy) центра поворота, то есть un=(Xn-Cx, Yn-Cy), когда устройство ввода отпускает оконный объект, a Vn является вектором между координатами точки касания, соответствующей периоду Tn-1 первого таймера, и координатами центра поворота, то есть vn=(Xn-1-Cx, Yn-1-Cy);
а в случае множества точек касания первый модуль обработки перемещения выполнен с возможностью получения величины смещения и величины поворота следующим образом:
величина смещения между периодами Tn-1 и Ti равна (ΔХ, ΔY)=(CXi-CXi-1, CYi-CYi-1), где (CXi, CYi) и (CXi-1, CYi-1) являются координатами центров двух точек касания с наименьшими номерами устройства, соответствующие периоду Ti и периоду Ti-1 первого таймера соответственно;
величина поворота между периодами Ti-1 и Ti равна αi=arccos[ui·vi/(|ui||vi|)], где ui, является вектором, образуемым двумя точками касания с наименьшими номерами устройства, соответствующими периоду Ti первого таймера, vi является вектором, образуемым двумя точками касания с наименьшими номерами устройства, соответствующими периоду Ti-1 первого таймера;
модуль обработки начальной скорости выполнен с возможностью получения начальной линейной скорости V и начальной угловой скорости Va следующим образом:
V=(CXn-CXn-1, CYn-CYn-1)/(Tn-Tn-1)=(CXn-CXn-1, CYn-CYn-1)/Δt, где (CXn, CYn) и (CXn-1, CYn-1) являются координатами центров векторов, образуемых двумя точками касания с наименьшими номерами устройства соответственно во время последнего периода Tn и периода Tn-1 первого таймера, когда устройство ввода отпускает оконный объект; Δt является периодом отсчета времени первого таймера;
Va=arccos[un·vn/(|un||vn|)]/(Tn-Tn-1)=arccos[un·vn/(|un||vn|)]/Δt, где un является вектором, образуемым двумя точками касания с наименьшими номерами устройства, соответствующими последнему периоду Tn первого таймера, когда устройство ввода отпускает оконный объект, a vn является вектором, образуемым двумя точками касания с наименьшими номерами устройства, соответствующими периоду Tn-1 первого таймера.

10. Устройство по п.8, отличающееся тем, что модуль обработки инерции выполнен с возможностью получения текущих величины смещения и величины поворота оконного объекта в соответствии со снижением линейной скорости и снижением угловой скорости следующим образом:
величина смещения, соответствующая периоду Ti второго таймера, равна (ΔX, ΔY)=(Vi-Vdec*Tg)*Tg,
величина поворота, соответствующая периоду Ti второго таймера, равна α1=(Vai-Vadec*Tg)*Tg,
где Vdec является снижением линейной скорости, Vadec является снижением угловой скорости, Vi является начальной линейной скоростью, соответствующей периоду Ti второго таймера, Vai является начальной угловой скоростью, соответствующей периоду второго таймера, Tg является периодом отсчета второго таймера, причем начальная линейная скорость и начальная угловая скорость, соответствующие первому периоду второго таймера после того, как устройство ввода отпустило оконный объект, направлены из модуля обработки перетаскивания соответственно.

Документы, цитированные в отчете о поиске Патент 2013 года RU2491610C1

Пломбировальные щипцы 1923
  • Громов И.С.
SU2006A1
Приспособление для суммирования отрезков прямых линий 1923
  • Иванцов Г.П.
SU2010A1
CN 101751195 A, 23.06.2010
RU 2007110422 A, 27.09.2008.

RU 2 491 610 C1

Авторы

Жэнь Минь

Чжан Цян

Гао Шуньдун

Даты

2013-08-27Публикация

2011-07-06Подача