RU2534486C2 - Моделирование инерции объектов при вводе множественным касанием - Google Patents
Моделирование инерции объектов при вводе множественным касанием Download PDFInfo
- Publication number
- RU2534486C2 RU2534486C2 RU2011116315/08A RU2011116315A RU2534486C2 RU 2534486 C2 RU2534486 C2 RU 2534486C2 RU 2011116315/08 A RU2011116315/08 A RU 2011116315/08A RU 2011116315 A RU2011116315 A RU 2011116315A RU 2534486 C2 RU2534486 C2 RU 2534486C2
- Authority
- RU
- Russia
- Prior art keywords
- application
- inertial
- user
- touch input
- simulation
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0412—Digitisers structurally integrated in a display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04812—Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/041—Indexing scheme relating to G06F3/041 - G06F3/045
- G06F2203/04104—Multi-touch detection in digitiser, i.e. details about the simultaneous detection of a plurality of touching locations, e.g. multiple fingers or pen and finger
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04806—Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04808—Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Manipulator (AREA)
- Processing Or Creating Images (AREA)
- Position Input By Displaying (AREA)
Abstract
Изобретение относится к области управления графическим приложением пользователя с использованием технологии множественного касания (multi-touch). Техническим результатом является обеспечение более реалистичного движения объектов приложений, управляемых с использованием аппаратного обеспечения multi-touch. Способ содержит этапы, на которых: определяют, что пользователь высвободил объект приложения, путем удаления одного или более контактов, связанных с вводом множественным касанием, с поверхности сенсорного ввода, при этом объект приложения отображается на дисплее; после данного определения вызывают инерционный интерфейс прикладного программирования (API), исполняющийся на компьютерном устройстве, для обработки моделирования перемещения объекта приложения для текущего периода обработки инерции; принимают посредством приложения инерционное событие, сгенерированное инерционным API после упомянутого определения, причем инерционное событие описывает воздействие на объект на основе смоделированной инерции; и обрабатывают принимаемое инерционное событие на основе эффекта упомянутого воздействия в контексте приложения путем изменения объекта приложения и отображения объекта приложения на дисплее соответственным образом. 3 н. и 17 з.п. ф-лы, 7 ил., 1 табл.
Description
Уровень техники
Планшетный компьютер или компьютер со световым пером, является ноутбуком или мобильным компьютером в форме планшета, оснащенный сенсорным экраном или графической гибридной технологией планшет/экран, которая позволяет пользователю работать на компьютере с помощью стилуса, цифрового пера или пальцев вместо клавиатуры или мыши. Планшетные компьютеры предлагают более естественные формы ввода, такие, как зарисовывание и запись от руки, которые являются гораздо более привычными формами ввода, чем клавиатура и мышь, особенно для людей, которые мало знакомы с компьютерами. Планшетные компьютеры также могут быть более доступны, поскольку те люди, которые физически не в состоянии использовать клавиши, могут использовать дополнительные функции планшетного компьютера, чтобы иметь возможность взаимодействовать с электронным миром.
Технология multi-touch или multitouch (мультитач) обозначает множество способов взаимодействия, которые позволяют пользователям компьютеров управлять графическими приложениями с использованием нескольких пальцев или устройств ввода (например, стилуса). Осуществления технологии multi-touch обычно включают сенсорное аппаратное обеспечение (например, экран, стол, стену и так далее) и программное обеспечение, которое распознает несколько одновременных точек касания. Технология multi-touch отличается от традиционных сенсорных экранов (например, компьютерная сенсорная панель, ATM, торговый киоск), которые могут распознавать только одну точку касания в один момент времени. Аппаратное обеспечение технологии multi-touch может определять касания с использованием тепла, давления пальцев, камер с высокой скоростью захвата, инфракрасного света, оптического захвата, настраиваемой электромагнитной индукции, ультразвуковых приемников, микрофонов преобразователей, лазерных дальномеров, захвата тени и других механизмов. Существует много приложений для multi-touch интерфейсов, и разработчики и пользователи приложений предлагают еще больше. Некоторые использования являются индивидуалистическими (например, Microsoft Surface, Apple iPhone, HTC Diamond). Как новый способ ввода, способ multi-touch открывает возможности для новых парадигм работы пользователей.
Приложение не может использовать аппаратное обеспечение multi-touch без интерфейса для программного обеспечения приложения для приема информации от аппаратного обеспечения multi-touch. К сожалению, каждое устройство с аппаратным обеспечением multi-touch включает в себя свой собственный интерфейс и авторы приложения должны иметь определенные знания аппаратного обеспечения устройства для записи программного обеспечения, которое работает с устройством. Например, провайдер аппаратного обеспечения multi-touch может предоставить драйвер режима ядра (kernel-mode) и интерфейс приложения пользовательского режима (user-mode), через который приложения с программным обеспечением пользовательского режима могут связываться с аппаратным обеспечением multi-touch для приема информации о касаниях. Авторы приложений записывают программное обеспечение, которое связывается с интерфейсом приложения пользовательского режима, но программное обеспечение автора приложения работает только с этим аппаратным обеспечением multi-touch. Пользователь компьютера с устройством с различным аппаратным обеспечением multi-touch не может использовать программное обеспечение автора приложения, кроме случая, когда автор приложения производит различную версию программного обеспечения, которая работает корректно с устройством компьютера пользователя. Это обеспечивает очень ограниченный потенциал рынка для авторов приложений, снижает стимулы для создания приложений, поддерживающих взаимодействия multi-touch, и сохраняет стоимость наиболее популярных устройств высокой, для которых наибольшее число приложений доступно.
Другой проблемой является трудность для приложений определить намерения пользователя на основе сенсорного ввода, принимаемого от аппаратного обеспечения multi-touch. Сенсорный ввод может приниматься как список координат, где аппаратное обеспечение воспринимает сенсорный ввод в любой момент времени. Каждое приложение должно включать в себя программное обеспечение, чтобы интерпретировать координаты и определять намерение пользователя. Кроме того, намерение пользователя может распространяться за пределы принятого фактического сенсорного ввода. Пользователь может ожидать поведения виртуальных объектов, как они ведут себя в физическом мире. Например, пользователь может ожидать, чтобы быть в состоянии "бросить" файл с одной стороны рабочего стола на другую, щелкая его/ее пальцем. Этот тип движения не поддерживается существующими приложениями multi-touch, которые будут ожидать, чтобы пользователь перетащил его/ее пальцем с одной стороны экрана весь путь до другой. Даже если одно приложение обеспечивает поддержку этого типа движения, то другие приложения не могут этим воспользоваться, и таким образом авторам приложений придется повторить работу автора первого приложения, чтобы предложить ту же функциональность в своих приложениях.
Сущность изобретения
Инерционная система обеспечивает общую платформу и прикладной программный интерфейс (application-programming interface, API) для приложений для расширения ввода, принимаемого от различных устройств с аппаратным обеспечением multi-touch для моделирования реального поведения объектов. Манипуляции, принимаемые посредством приложения, только описывают движения объекта на основе движения контактов с аппаратным обеспечением multi-touch. Однако чтобы двигаться естественно, объекты должны также проявлять физические характеристики, такие, как упругость и торможение. Когда пользователь поднимает все контакты от объекта, инерционная система обеспечивает дополнительные манипуляционные события с приложением так, что приложение может обрабатывать события, как если бы пользователь еще двигал объект с помощью касания. Однако инерционная система фактически генерирует события на основе моделирования поведения объектов. Если пользователь перемещает объект в другой объект, инерционная система передает манипуляционные события на основе характеристик границ объектов. Таким образом, инерционная система обеспечивает более реалистичное движение для объектов приложений, которыми манипулирует пользователь с использованием аппаратного обеспечения multi-touch, и API обеспечивает соответствующее ощущение для манипуляций в различных приложениях.
Эта Сущность изобретения предоставлена, чтобы представить набор концепций в упрощенной форме, которые далее рассматриваются в Подробном описании. Эта Сущность изобретения не предназначена для идентификации ключевых функций или существенных функций заявленного предмета изобретения, она также не предназначена для ограничения области заявленного предмета изобретения.
Краткое описание чертежей
Фиг. 1 является блок-схемой, которая иллюстрирует компоненты инерционной системы, в одном варианте осуществления.
Фиг. 2 является схемой потока данных, которая иллюстрирует типичную операционную среду инерционной системы и поток данных между компонентами, в одном варианте осуществления.
Фиг. 3 является схемой дисплея, которая иллюстрирует объект приложения, манипулируемый касанием пользователя, в одном варианте осуществления.
Фиг. 4 является блок-схемой последовательности операций, которая иллюстрирует обработку цикла ввода приложения multi-touch с использованием инерционной системы для обработки манипуляционных событий, в одном варианте осуществления.
Фиг. 5 является блок-схемой последовательности операций, которая иллюстрирует обработку инерционной системы, когда система принимает сенсорный ввод, в одном варианте осуществления.
Фиг. 6 является блок-схемой последовательности операций, которая иллюстрирует обработку приложения multi-touch с использованием инерционной системы для обработки инерционных событий, в одном варианте осуществления.
Фиг. 7 является блок-схемой последовательности операций, которая иллюстрирует обработку компоненты моделирования инерционной системы обработки, в одном варианте осуществления.
Подробное описание
Инерционная система обеспечивает общую платформу и API для приложений для расширения ввода, принимаемого от различных устройств с аппаратным обеспечением multi-touch, для моделирования реального поведения объектов. Например, реальные объекты, как правило, не прекращают движение, когда пользователь прекращает толкать их, а проявляют некоторую инерцию и продолжают двигаться, пока трение не замедляет их до остановки. В некоторых вариантах осуществления, сенсорный ввод сначала проходит процесс интерпретации движения одного или более контактов как манипуляций. Манипуляции отображаются более явно в намерения пользователя, чем отображаются индивидуальные сенсорные вводы, и добавляют поддержку для основной трансформации объектов с использованием нескольких сенсорных контактов. Приложение может использовать манипуляции для поддержки вращения, изменения размера и преобразование нескольких объектов (например, фотографий) в то же время. Манипуляции могут быть описаны как двухмерные (2D) аффинные преобразования, которые содержат информацию вращения, масштабирования (например, увеличения) и преобразования (например, панорамирования).
Каждое прикосновение аппаратного обеспечения multi-touch называется контактом. Например, когда пользователь устанавливает его/ее палец на аппаратное обеспечение multi-touch, перемещает его/ее палец вокруг, и поднимает его/ее палец, эта последовательность событий является отдельным контактом. Например, если пользователь перемещает два контакта ближе друг к другу или дальше друг от друга, система может определить, что пользователь осуществляет масштабирование (например, масштабирования в или из) объекта. В качестве другого примера, если пользователь перемещает несколько контактов в круговом движении, тогда система может интерпретировать движение как вращение объекта. Каждое приложение может определять объекты, которые относятся по-разному, так что приложение решает присоединить событие системы (называемой манипуляционным процессором) к каждому объекту, чтобы пользователь мог манипулировать с использованием сенсорного ввода в приложении. Например, приложения просмотра фотографий могут присоединять манипуляционный процессор к каждой отображаемой фотографии, так что пользователь может перемещать фотографии вокруг, масштабировать фотографии, вращать фотографии и т.д.
Манипуляции, обрабатываемые посредством приложения, только описывают движения объекта на основе движения контактов. Однако чтобы двигаться естественно, объекты должны также проявлять физические характеристики, такие, как упругость и замедление. Когда пользователь поднимает все контакты от объекта, инерционная система обеспечивает дополнительные манипуляционные события для приложения, так что приложение может обрабатывать события, как если бы пользователь еще перемещал объект с помощью прикосновения. Однако инерционная система фактически генерирует события на основе моделирования поведения объектов. Например, если пользователь поднял контакты, пока у объекта была скорость в определенном направлении, тогда инерционная система продолжает отправку событий, которые указывают, что объект перемещается в этом направлении, замедляя во времени, как объект замедляется. Если пользователь перемещает объект в другой объект, такой, как край экрана, инерционная система передает манипуляционные события на основе характеристик границ объектов. Например, если автор приложения определяет два объекта как упругие, тогда два объекта могут отскакивать друг от друга, когда пользователь перемещает объекты друг в друга. Таким образом, инерционная система обеспечивает более реалистичное движение для объектов приложений, которыми манипулирует пользователь с использованием аппаратного обеспечения multi-touch, и API обеспечивает согласованное чувство для манипуляции в различных приложениях.
Фиг. 1 является блок-схемой, которая иллюстрирует компоненты инерционной системы, в одном варианте осуществления. Инерционная система 100 включает интерфейс 110 аппаратного обеспечения, один или более манипуляционных процессоров 120, компоненту 130 преобразования ввода, компоненту 140 моделирования и интерфейс 150 приложения. Каждая из этих компонент описывается более подробно здесь.
Интерфейс 110 аппаратного обеспечения связывается с аппаратным обеспечением для приема контактов прикосновений и перемещений. Интерфейс 110 аппаратного обеспечения может включать в себя несколько субкомпонент, которые могут работать вместе, чтобы обеспечить информацию сенсорного ввода. Например, операционная система может обеспечить общую модель управления для производителей аппаратного обеспечения multi-touch, чтобы обеспечить сенсорную информацию для их конкретного аппаратного обеспечения. Операционная система может преобразовывать сенсорную информацию, принимаемую через эту модель, в оконные сообщения (например, WM_TOUCH, рассматриваемые здесь) и передавать эти сообщения приложению. Таким образом, интерфейс 110 аппаратного обеспечения может включать в себя координацию аппаратного обеспечения, драйвер аппаратного обеспечения и слой операционной системы. Результатом являются последовательности сообщений инерционной системе, которые идентифицируют конкретный контакт (например, прикосновение пальца) и координаты контакта с течением времени. Например, операционная система может обеспечить сообщение, когда новый контакт устанавливается на аппаратном обеспечении multi-touch, сообщение каждый раз, когда контакт перемещается, и сообщение, когда контакт убирается от аппаратного обеспечения multi-touch.
Один или более манипуляционных процессоров 120 используют компоненту 130 преобразования ввода для интерпретации перемещения каждого контакта, связанного с конкретным объектом приложения. Манипуляционный процессор 120 может определить, что пользователь использует несколько контактов для выполнения отдельного действия. Например, пользователь может прикоснуться к фотографии всеми пятью пальцами одной руки и повернуть его/ее руку, чтобы указать намерение вращать фотографию. Манипуляционный процессор 120 принимает пять отдельных контактов (один для каждого пальца) и изменения координат каждого контакта, как пользователь вращает его/ее руку. Манипуляционный процессор 120 определяет, что каждый контакт захватывает тот же объект и выполняет то же вращение. Система информирует приложение, что пользователь повернул объект, но приложение может игнорировать, использовал ли пользователь два, пять или любое конкретное число пальцев или других контактов для выполнения вращения. Это значительно упрощает редактирование приложения, поскольку автор приложения может обрабатывать те типы манипуляций, которые имеют отношение к приложению и оставить инерционной системе интерпретацию значения каждого сенсорного ввода нижнего уровня, принимаемого от аппаратного обеспечения multi-touch.
Манипуляционный процессор 120 использует компоненту 130 преобразования ввода для вынесения решений о значении принимаемых перемещений различных контактов, как самостоятельно, так и согласованно. Например, если пользователь манипулирует фотографией двумя пальцами, которые создают два соответствующих контакта ввода, тогда манипуляционный процессор 120 использует компоненту 130 преобразования ввода для определения значения относительных перемещений между этими двумя контактами. Если два контакта двигаются врозь, тогда компонента 130 преобразования ввода может определить, что пользователь осуществляет масштабирование объекта для изменения размера объекта. Если два контакта вращаются, тогда компонента 130 преобразования ввода может определить, что пользователь вращает объект. Если два контакта оба перемещаются в конкретном направлении, тогда компонента 130 преобразования ввода может определить, что пользователь панорамирует объект в новое место. Хотя каждый вид перемещения обсуждается отдельно, отметим, что пользователь может осуществлять все три типа перемещений в то же время, и процессор преобразования ввода может сообщать общее преобразование приложению. Например, пользователь может вращать, масштабировать и панорамировать объект, все в одном движении.
Компонента 140 моделирования имитирует продолжение перемещения объекта приложения после того, как пользователь останавливает касание объекта, на основе параметров инициализации и ограничений, определенных для объекта. Приложение может инициализировать компоненту 140 моделирования с конечным состоянием манипуляционного процессора 120, связанного с объектом. Приложение может также определять различные характеристики объекта, такие, как поведение границ объекта. Компонента 140 моделирования использует технологии на основе физики для моделирования поведения объекта за интервал после того, как пользователь освобождает объект. Например, компонента 140 моделирования может продолжать запускать уведомления для приложения в той же форме, как манипуляционные события, принятые посредством приложения, пока пользователь двигал объект. Приложение может затем сконцентрироваться на реагировании на перемещения объекта вместо концентрации на действиях (пользователя или физических), вызвавших движение объекта. Специалисты в данной области распознают много известных технологий для имитации эквивалентного физического поведения виртуальных объектов в программном обеспечении.
Интерфейс 150 приложения связывается с приложением для приема информации и обеспечения преобразования манипуляций для приложения. Интерфейс 150 приложения принимает информацию инициализации от приложения. Информация инициализации может определять, какие типы преобразований объект приложения поддерживает для конкретного объекта и связанного манипуляционного процессора, а также данные инициализации для компоненты 140 моделирования, когда пользователь больше не двигает объект. Например, некоторые объекты приложения могут поддерживать масштабирование, но не вращение. Информация инициализации может также определять опорную точку объекта. Инерционная система обеспечивает преобразования манипуляций для приложения через интерфейс приложения. Например, когда инерционная система принимает сенсорный ввод нижнего уровня, который система интерпретирует как распознаваемое преобразование (например, вращение), система запускает событие для уведомления приложения о манипуляции. Приложение обрабатывает преобразование манипуляции для изменения объекта на основе преобразования. Например, если пользователь повернул объект, тогда приложение может хранить новое положение объекта, чтобы использовать в следующий раз, когда приложение отображает объект. В качестве другого примера, если объект продолжает вращаться, после того, как пользователь отпустил его, на основе вычислений компоненты 140 моделирования, тогда приложение может хранить новое положение объекта.
Вычислительное устройство, на котором осуществляется система, может включать в себя центральный процессор, память, устройства ввода (например, клавиатуру и указательные устройства), устройства вывода (например, дисплеи) и устройства хранения (например, дисководы). Память и устройства хранения являются машиночитаемыми носителями, которые могут быть закодированы с помощью исполняемых компьютером инструкций, которые осуществляет система, что означает машиночитаемый носитель, который содержит инструкции. Кроме того, структуры данных и структуры сообщений могут храниться или передаваться через среду передачи данных, такую, как сигнал на линии связи. Различные линии связи могут использоваться, такие, как сеть Internet, локальная сеть, глобальная сеть, подключение точка-точка удаленного доступа, сотовая телефонная сеть и так далее.
Варианты осуществления системы могут осуществляться в различных операционных средах, которые включают в себя персональные компьютеры, серверы, портативные устройства или ноутбуки, многопроцессорные системы, системы на основе микропроцессоров, программируемую бытовую электронику, цифровые камеры, сетевые персональные компьютеры, миникомпьютеры, универсальные вычислительные машины, распределенные вычислительные среды, которые включают в себя любые из упомянутых выше систем или устройств, и так далее. Компьютерные системы могут быть сотовыми телефонами, персональными цифровыми помощниками, смартфонами, персональными компьютерами, программируемой бытовой электроникой, цифровыми камерами и так далее.
Система может быть описана в общем контексте исполняемых компьютером инструкций, таких, как программные модули, выполняемые одним или более компьютерами или другими устройствами. В целом, программные модули включают процедуры, программы, объекты, компоненты, структуры данных и так далее, которые выполняют конкретные задачи или осуществляют конкретные абстрактные типы данных. Обычно, если требуется, то функциональность программных модулей может быть совмещена или распределена в различных вариантах осуществления.
Фиг. 2 является схемой потока данных, которая иллюстрирует типичную операционную среду инерционной системы и поток данных между компонентами, в одном варианте осуществления. Аппаратное обеспечение устройства multi-touch порождает данные 210 ввода через интерфейс аппаратного обеспечения. Например, аппаратное обеспечение может передавать данные 210 ввода операционной системе через драйвер программного обеспечения, предоставляемый производителем аппаратного обеспечения. Интерфейс аппаратного обеспечения обеспечивает входные события 220 для приложения 230. Например, приложение может информировать операционную систему, что приложение 230 поддерживает пользовательский ввод multi-touch и регистр для приема сообщений, относящихся к пользовательскому вводу multi-touch. Приложение 230 принимает информацию сенсорного ввода нижнего уровня как изменения 240 ввода и направляет изменения 240 ввода манипуляционной системе 250. Например, изменения 240 ввода могут описывать каждое перемещение одного или более контактов прикосновений с помощью аппаратного обеспечения с использованием набора координат, которые указывают текущую позицию каждого контакта и другие характеристики перемещения. Манипуляционная система 250 интерпретирует изменения 240 ввода и уведомляет приложение 230 об одном или более манипуляционных событиях 260, которые указывают манипуляции верхнего уровня, которые пользователь выполняет над отображаемым объектом. Например, если движение контактов указывает, что пользователь намерен вращать объект, то манипуляционные события 260 указывают угол вращения.
Когда пользователь осуществляет перемещение объекта (например, когда приложение принимает уведомление, что каждый контакт, касающийся объекта, был перемещен от сенсорного аппаратного обеспечения), приложение 230 передает информацию 270 инициализации инерционной системе 280. Инерционная система 280 определяет следующую позицию объекта и обеспечивает инерционные события 290, подобные манипуляционным событиям 260, которые манипуляционная система 250 предоставила, когда пользователь двигал объект. Приложение 230 также обеспечивает управляющий таймер, чтобы периодически вызывать инерционную систему 280, чтобы обеспечить следующую позицию объекта через инерционные события 290. Приложение 230 обрабатывает инерционные события способом подобно манипуляционным событиям.
Хотя схема иллюстрирует, что приложение сначала принимает сенсорный ввод и передает сенсорный ввод манипуляционной системе и инерционной системе, в некоторых вариантах осуществления, эти системы принимают сенсорный ввод напрямую от интерфейса аппаратного обеспечения, интерпретируют сенсорный ввод и предоставляют интерпретированные манипуляционные события приложению. Подобным образом, приложение может не знать, что отдельная инерционная система 280 предоставляет инерционные события после того, как пользователь прекращает перемещать объект с помощью прикосновения, но даже может принимать события от одного интерфейса в течение времени, когда пользователь перемещает объект и после того, как объект перемещается на основе инерции. Это представляет альтернативную архитектуру, которая обеспечивает подобную результирующую функциональность, но дает приложению меньше контроля над обработкой входных данных. Например, приложение может не быть в состоянии определить отдельные объекты приложения, к которым система присоединяет отдельные манипуляционные процессоры. RTS plug-in, рассматриваемый здесь, является примером этой альтернативной архитектуры для системы.
Фиг. 3 является схемой дисплея, которая иллюстрирует объект приложения, манипулируемый касанием пользователя, в одном варианте осуществления. Приложение может одновременно отображать и принимать сенсорный ввод для многих таких объектов. Например, командное приложение операционной системы может отображать один или более документальных объектов, хранящихся на рабочем столе компьютера пользователя. На дисплее 310, документальный объект 320 представляет документ на рабочем столе пользователя, который пользователь хочет перетащить в корзину 330 с использованием касания. Пользователь выполняет мерцающее движение документального объекта 320, которое приводит к обработке системой первой манипуляционной позиции 340, второй манипуляционной позиции 350 и третьей манипуляционной позиции 360. Приложение принимает первую манипуляционную позицию 340, когда пользователь первоначально касается документального объекта 320 одним или более пальцами (т.е. контактами). Приложение принимает вторую манипуляционную позицию 350, когда пользователь двигает его/ее пальцы через экран. Приложение принимает третью манипуляционную позицию, когда пользователь поднимает его/ее пальцы от экрана. Стрелки 365 представляют векторы перемещения документального объекта 320.
Без инерции, документальный объект 320 остановился бы на третьей манипуляционной позиции 360, которая вероятно не соответствует намерению пользователя. Инерционная система обеспечивает дополнительные манипуляционные позиции приложению, как если бы пользователь еще касался и перемещал документальный объект 320, на основе скорости документального объекта 320, когда пользователь отпускает документальный объект 320. Приложение принимает первую манипуляционную позицию 370 на основе инерции, когда приложение инициирует инерционную систему, и вызывает функцию обработки инерционной системы для первого момента времени. Приложение принимает вторую манипуляционную позицию 380 на основе инерции, по мере того, как приложение продолжает вызывать функцию обработки инерционной системы. Поскольку итоговая манипуляционная позиция 380 документального объекта 320 оканчивается на корзине 330, приложение обрабатывает контакт между этими двумя объектами (например, посредством размещения документального объекта 320 в корзину 330). В иллюстрированном примере, даже хотя инерционная система замедляет движение документального объекта 320, документальный объект 320 еще может перемещаться порядочное расстояние через дисплей 310 на основе высокой начальной скорости перемещения пользователя документального объекта 320 в начале.
Фиг. 4 является блок-схемой последовательности операций, которая иллюстрирует цикл обработки ввода приложения multi-touch с использованием инерционной системы для обработки манипуляционных событий, в одном варианте осуществления. В блоке 410, приложение принимает сенсорный ввод нижнего уровня. Например, операционная система или экземпляр инерционной системы принимает информацию сенсорного контакта от аппаратного обеспечения multi-touch и направляет информацию сенсорного контакта приложению. В блоке 420, приложение определяет объект, к которому применяется ввод. Например, приложение может проверить координаты принимаемого ввода посредством сравнения этих координат с координатами каждого объекта приложения, отображаемого приложением. Если сенсорный ввод находится в пределах границ отображаемого объекта приложения, тогда приложение определяет, что сенсорный ввод применяется к этому объекту. В блоке 430, приложение передает принимаемый сенсорный ввод и информацию об определенном объекте приложения манипуляционному API для вызова инерционной системы (смотрите Фиг. 5). Например, приложение может создать числовой идентификатор для каждого объекта приложения и передавать числовой идентификатор инерционной системе каждый раз, когда сенсорный ввод соответствует этому объекту.
В блоке 440, приложение принимает манипуляционное событие от инерционной системы, которое описывает одну или более манипуляций определенного объекта приложения. Например, приложение может принимать событие, описывающее 2D аффинное преобразование объекта приложения. Необходимо отметить, что блок 440 иллюстрируется последовательно после блока 430 для простоты иллюстрации. На практике, приложение может принимать много событий сенсорного ввода, перед тем, как инерционная система уведомляет приложение манипуляционным событием. Не обязательно отображать одно-к-одному события сенсорного ввода в манипуляционные события. Поскольку манипуляционные события представляют интерпретацию верхнего уровня сенсорного ввода нижнего уровня, множество данных сенсорного ввода может составить одно манипуляционное событие. В блоке 450, приложение обрабатывает принимаемое манипуляционное событие. Например, если принимаемое манипуляционное событие является вращением, тогда приложение может вращать объект приложения на экране и сохранять новые позиции объектов приложения для использования, когда объект приложения отображается снова. Инерционная система освобождает приложение от выполнения этапов, специфичных для конкретного устройства с аппаратным обеспечением multi-touch, или даже от сведений о том, какое устройство с аппаратным обеспечением предоставляет multi-touch ввод. Кроме того, инерционная система освобождает приложение от обработки перемещений отдельных контактов и позволяет приложению фокусироваться на обработке преобразований на уровне объектов приложения.
В блоке 460, приложение ждет следующего сенсорного ввода. Например, приложение может вызвать предоставляемое операционной системой сообщение API, такое, как GetMessage в Microsoft Windows, которое ждет доставки следующего сообщения в очередь сообщений приложения. В блоке 470 принятия решений, если приложение принимает следующий сенсорный ввод, тогда приложение возвращается к блоку 410 для обработки ввода, иначе приложение возвращается к блоку 460 для продолжения ожидания следующего ввода. Когда приложение закрывается, приложение выходит из цикла ввода (не показано).
Фиг. 5 является блок-схемой последовательности операций, которая иллюстрирует обработку инерционной системы, когда система принимает сенсорный ввод, в одном варианте осуществления. В блоке 505, система принимает сенсорный ввод наряду с информацией, определяющей объект приложения, с которым связан сенсорный ввод. Например, сенсорный ввод может включать координаты или информацию о других позициях одного или более сенсорных контактов, и информация об объекте приложения может включать в себя идентификатор, который приложение назначило конкретному отображаемому объекту, которому соответствует сенсорный ввод аппаратного обеспечения multi-touch. В блоке 510, система определяет манипуляционный процессор, связанный с объектом приложения. В блоке 520 принятия решений, если система не имеет процессор управления, заранее связанный с объектом приложения, тогда система переходит к блоку 530, иначе система переходит к блоку 540. В блоке 530, система создает манипуляционный процессор и связывает его с объектом приложения, затем переходит к блоку 540.
В блоке 540 принятия решений, если принимаемый сенсорный ввод указывает, что приложение приняло новый контакт (например, событие прикосновения), тогда система переходит к блоку 550, иначе система переходит к блоку 560. Например, пользователь может сделать первый контакт пальцем на объекте на экране или установить другой палец (т.е. контакт) на объект, к которому он ранее прикоснулся. В блоке 550, система добавляет новый контакт в список контактов, связанных с манипуляционным процессором, и затем переходит к блоку 560. В блоке 560 принятия решений, если принимаемый сенсорный ввод указывает, что принимаемое приложением уведомление о том, что сенсорный контакт был удален (например, событие, когда прикосновение убирается), тогда система переходит к блоку 570, иначе система переходит к блоку 580. Например, пользователь может поднять один или более пальцев от объекта, к которому он ранее прикоснулся. В блоке 570, система удаляет контакт из списка контактов, связанных с манипуляционным процессором, и затем переходит к блоку 580. В блоке 580, система обрабатывает сенсорный ввод, чтобы определить какие-либо манипуляционные события, представленные сенсорным вводом. Например, перемещение прикосновения может указывать вращение или манипуляцию преобразования, в то время как удаление сенсорного контакта может указывать на завершение манипуляции. В блоке 590, система запускает манипуляционное событие, чтобы передать информацию о преобразовании, описывающую манипуляцию приложению. Например, система может предоставить степень углового вращения объекта для приложения. После блока 590, эти этапы завершаются.
Фиг. 6 является блок-схемой последовательности операций, которая иллюстрирует обработку приложения multi-touch с использованием инерционной системы для обработки инерционных событий, в одном варианте осуществления. В блоке 610, приложение определяет, что пользователь освободил объект. Например, после обработки манипуляционного события в блоке 450 Фиг. 4, приложение может принимать индикацию того, что манипуляция завершилась или что пользователь поднял все контакты, которые касались объекта приложения. В блоке 620, приложение инициирует инерционную систему. Например, приложение может передавать ссылку манипуляционному процессору об обработке движения объекта и другую информацию инициализации. В блоке 630, приложение устанавливает таймер, который будет запускать интервал обработки инерции инерционной системы. Например, приложение может установить таймер, который будет срабатывать каждые 100 миллисекунд для обработки следующего приращения перемещения объекта. В блоке 640, приложение вызывает функцию обработки инерционной системы (смотрите Фиг. 7). Например, инерционная система может обеспечить функцию "Process (Обработка)", которую приложение вызывает, чтобы информировать инерционную систему, что настало время для выполнения моделирования за интервал с последнего интервала моделирования.
В блоке 650, приложение принимает одно или более инерционные события, которые описывают манипуляции объекта (например, вращение, преобразование, и/или масштабирование) на основе моделированной инерции. Например, если объект перемещался в конкретном направлении, приложение может принимать инерционное событие, которое описывает манипуляцию преобразования в этом направлении. В качестве другого примера, если объект расширялся, когда пользователь отпустил его, приложение может принимать инерционное событие, которое описывает манипуляцию масштабирования. Необходимо отметить, что блок 650 иллюстрируется последовательно после блока 640 для простоты иллюстрации. На практике, приложение может вызвать функцию обработки инерции несколько раз перед тем, как инерционная система уведомляет приложение инерционным событием. Не обязательно отображать один-к-одному вызовы функции обработки и инерционные события. С другой стороны, инерционная система может уведомить приложение о множестве инерционных событий после одного вызова функции обработки.
В блоке 660, приложение обрабатывает принимаемое инерционное событие на основе значения (например, эффекта) манипуляции в контексте конкретного приложения. Например, если принимаемое инерционное событие является вращением, тогда приложение может вращать объект приложения на экране и сохранять новые позиции объектов приложения для использования, когда приложение отображает объект приложения снова. В блоке 670 принятия решений, если инерционные события завершены, тогда эти этапы завершаются, иначе система переходит к блоку 680. Инерционная система может информировать приложение, что конкретное моделированная манипуляция завершилась, как возвращаемое значение от функции обработки или через уведомления, предоставляемые приложению (например, через интерфейс событий объектной модели программных компонентов (Component Object Model, COM)). В блоке 680, приложение ждет следующего запуска таймера, затем возвращается к блоку 640 для вызова функции обработки инерционной системы.
Фиг. 7 является блок-схемой последовательности операций, которая иллюстрирует обработку компоненты моделирования инерционной системы обработки, в одном варианте осуществления. В блоке 710, компонента принимает начальные параметры моделирования. Например, приложение или манипуляционный процессор может обеспечить итоговое состояние объекта приложения, когда пользователь остановил касание объекта. В блоке 720, компонента инициирует моделирующую машину, которая выполняет вычисления на основе физики, чтобы определить поведение объекта на основе параметров. Например, моделирующая машина может обеспечить реалистичное замедление или упругое поведение для объектов приложений, приведенных в движение посредством сенсорного ввода пользователя. В блоке 730, компонента принимает вызов обработки от приложения. Приложение или другая компонента запускает процесс моделирования путем многократного вызова функции обработки в регулярные интервалы, чтобы двигать моделирование вперед. Компонента моделирования может также внутренне генерировать таймер.
В блоке 740, компонента имитирует перемещения объекта на основе начальных параметров, какой-либо предыдущей обработки и времени, которое прошло с момента последнего вызова обработки. Вызов обработки может также предоставлять метку, которая указывает время, в течение которого приложение желает использовать моделирование. Это позволяет приложению моделировать поведение приложения в других режимах, чем в режиме реального времени (например, для тестирования приложения или отладки). В блоке 750 принятия решений, если движение завершилось, тогда компонента переходит к блоку 760, иначе компонента переходит к блоку 770. Компонента может определить, что движение завершилось на основе таких факторов, как движется ли еще объект или перемещение объекта снизилось ниже определенного порога. В блоке 760, компонента устанавливает флаг завершения на следующем инерционном событии. В блоке 770, компонента запускает инерционное событие для передачи информации преобразования, описывающей текущее перемещение (например, как манипуляция), приложению. Например, система может обеспечить степень углового вращения объекта для приложения. После блока 770, эти этапы завершаются.
В некоторых вариантах осуществления, инерционная система принимает ограничения объекта от приложения. Например, приложение может определять упругость объекта, коэффициент трения (чтобы определить, как объект замедляется), граничные характеристики объекта и т.д. Например, автор приложения может определить жесткие объекты, которые пользователь может перемещать, и пружинистый край окна приложения, так что объекты, перемещаемые на край окна, пружинят от края окна, когда пользователь отпускает их.
В некоторых вариантах осуществления, инерционная система принимает информацию о начальном состоянии объекта от манипуляционной системы, которая отслеживала движение объекта, когда пользователь манипулирует объектом с помощью сенсорного ввода. Например, манипуляционная система может отслеживать текущую позицию каждого объекта, историю перемещения объекта, линейную и угловую скорость объекта и т.д. Автор приложения может предоставлять выходные данные манипуляции инерционной системе для инициализации инерционной системы, так что инерционная система может плавно продолжить последнее перемещение объекта и замедлить его на основе соответствующей физики и характеристик объекта.
В некоторых вариантах осуществления, инерционная система принимает ограничения на движение объектов от приложения. Например, автор приложения может определять верхнюю границу расстояния, на которое объект может перемещаться, как только пользователь отпустит объект. В качестве другого примера, приложение может определять верхнюю границу длительности перемещения объекта, как только пользователь отпустит объект. Эти и другие ограничения позволяют автору приложения регулировать инерционную систему с учетом типов объектов, манипулируемых посредством приложения, и расширять опыт работы пользователя с приложением.
В некоторых вариантах осуществления, инерционная система не предоставляет дополнительное перемещение для объектов с перемещением ниже заранее заданного порога. Порог может конфигурироваться посредством приложения. Например, инерционная система может иметь линейную или угловую скорость для конкретного объекта, ниже которой система не будет продолжать перемещение объекта после того, как пользователь отпустит объект. Если объект не перемещается очень быстро, когда пользователь отпускает его, то пользователь может ожидать, что объект будет оставаться на месте и не продолжит перемещаться. Порог позволяет приложению или автору инерционной системы определить уровень перемещения после манипуляции, что обеспечивает хороший опыт работы пользователю.
В некоторых вариантах осуществления, инерционная система принимает инструкции для моделирования перемещения постепенно от приложения. Например, инерционная система может обеспечить функцию "Process (Обработка)" или "DoWork (Выполнение работы)", которую приложение вызывает, чтобы поручить инерционной системе выполнение части всего моделирования. Инерционная система может ожидать, когда приложение установит таймер или иначе периодически вызывать функцию, чтобы вызывать инерционную систему для моделирования перемещения во времени в соответствии с обычным временем. Приложение может повлиять на характеристики манипуляционных событий, предоставляемых инерционной системой, путем изменения того, как часто приложение вызывает функцию. В других вариантах осуществления, инерционная система использует внутренний таймер, чтобы обеспечить события управления на регулярной основе пока каждый объект не остановит перемещение (например, из-за замедления или других моделируемых сил).
В некоторых вариантах осуществления, инерционная система является частью операционной системы на основе сообщений, и система принимает сообщения, связанные с сенсорным вводом, который операционная система принимает от аппаратного обеспечения. Например, с использованием парадигмы, похожей на WM_MOUSEMOVE для сообщений мыши, будущие версии Microsoft Windows могут предоставлять сообщение WM_TOUCH, которое содержит информацию сенсорного перемещения нижнего уровня, принимаемую от аппаратного обеспечения multi-touch. Операционная система может также предоставлять мелкоструктурные сообщения, такие, как WM_TOUCHDOWN (когда новый контакт осуществляется с помощью аппаратного обеспечения multi-touch), WM_TOUCHMOVE (когда существующий контакт перемещается) и WM_TOUCHUP (когда контакт поднимается от аппаратного обеспечения multi-touch). Приложение, которое принимает сообщение, связанное с WM_TOUCH, может ссылаться на инерционную систему и передавать сообщение инерционной системе для интерпретации и обработки. Приложение затем принимает события верхнего уровня, которые представляют интерпретацию манипуляций инерционной системы, направляемых пользователем, на основе принимаемой информации сенсорного перемещения нижнего уровня.
В некоторых вариантах осуществления, инерционная система принимает информацию сенсорного перемещения нижнего уровня от специализированного аппаратного обеспечения, такого, как стилус в режиме реального времени. Например, средство разработки программного обеспечения (Software Development Kit, SDK) для планшетного компьютера Microsoft обеспечивает компоненту стилуса в реальном времени (real-time stylus, RTS), которую авторы приложений могут расширять добавочными блоками (hooks). Добавочные блоки RTS принимают входные данные от RTS аппаратного обеспечения и могут выполнять обработку принимаемых входных данных. Инерционная система может обеспечить добавочный блок, который приложение может добавлять в компоненту RTS для автоматической обработки RTS и других входных данных для манипуляции объектами приложений как рассматривается здесь. Добавочный блок RTS обеспечивает другой способ для инерционной системы для приема входных данных, но инерционная система интерпретирует входные данные и запускает события для приложения, описывая манипуляции, подразумеваемые входными данными, как описано ранее. Пользователь может использовать сочетание стилуса и сенсорного ввода. Например, пользователь может рисовать объект стилусом и затем вращать объект с использованием его/ее пальцев.
В некоторых вариантах осуществления, инерционная система является частью общего контроля, на который приложение может ссылаться, чтобы обеспечить общий пользовательский интерфейс. Microsoft Windows обеспечивает общие элементы управления для отображения списков, деревьев, кнопок и т.д. Подобным образом, инерционная система может обеспечить управление на основе multi-touch для манипуляции объектами приложений способами, рассматриваемыми здесь. Например, система может обеспечить распределенное управление, которое позволяет пользователю отображать один или более объектов и манипулировать объектами. Распределенное управление обеспечивает обработку сенсорного ввода нижнего уровня и связывает входные данные с конкретным объектом приложения, и приложение принимает события от управления для обработки манипуляции объектов приложений. Например, если управление указывает, что пользователь изменил размеры объекта, тогда приложение может хранить объекты нового размера.
В некоторых вариантах осуществления, инерционная система выполняет рассматриваемую здесь обработку в трех измерениях. Хотя двумерное аппаратное обеспечение multi-touch рассматривается здесь, специалисты в данной области распознают, что обработку системы, рассматриваемой здесь, можно также эквивалентно применять к трехмерным (3D) манипуляциям, если доступно аппаратное обеспечение, чтобы обеспечить координатное перемещение в трех измерениях. Например, аппаратное обеспечение, которое определяет давление или использует камеры, чтобы определить 3D перемещения пальцев пользователя, может предоставлять координаты перемещения в третьем измерении инерционной системе, и инерционная система может тогда производить 3D преобразования, которые описывают манипуляции (например, вращение, масштабирование и преобразование) объектов во многих 3D направлениях.
Следующая таблица определяет один API, который инерционная система обеспечивает для приложений для предоставления перемещения на основе инерции для объектов приложений, следуя перемещению объектов на основе касаний пользователя.
Свойства: | |
BoundaryBottom (Граница снизу) |
Ограничивает, насколько далеко в направлении нижней части экрана может двигаться целевой объект. |
BoundaryLeft (Граница слева) |
Ограничивает, насколько далеко в направлении влево экрана может двигаться целевой объект. |
BoundaryRight (Граница справа) |
Ограничивает, насколько далеко в направлении вправо экрана может двигаться целевой объект. |
BoundaryTop (Граница сверху) |
Ограничивает, насколько далеко в направлении верхней части экрана может двигаться целевой объект. |
DesiredAngularDeceleration (Требуемое угловое замедление) |
Определяет требуемую скорость, при которой целевой объект остановится вращаться в радианах на миллисекунду. |
DesiredDeceleration (Требуемое замедление) |
Определяет требуемую скорость, при которой операции преобразования будут замедляться. |
DesiredDisplacement (Требуемое смещение) |
Определяет требуемое расстояние, на которое будет перемещаться объект. |
DesiredExpansion (Требуемое расширение) |
Определяет требуемое изменение среднего радиуса объекта. |
DesiredExpansionDeceleration (Требуемое расширение) |
Определяет требуемое изменение среднего радиуса объекта. |
ElasticMarginBottom (Эластичный край снизу) |
Определяет область снизу для подпрыгивания целевого объекта. |
ElasticMarginLeft (Эластичный край слева) |
Определяет крайнюю слева область для подпрыгивания целевого объекта. |
ElasticMarginRight (Эластичный край справа) |
Определяет крайнюю справа область для подпрыгивания целевого объекта. |
InitialAngularVelocity (Начальная угловая скорость) |
Определяет вращение цели, когда начинается движение. |
InitialOriginX (Начало по горизонтали) |
Получает или ставит свойство, указывающее горизонтальную позицию для целевого объекта. Это свойство определяет начальную горизонтальную позицию для цели с инерцией. |
InitialOriginY (Начало по вертикали) |
Получает или ставит свойство, указывающее вертикальную позицию для целевого объекта. Это свойство определяет начальную вертикальную позицию для цели с инерцией. |
InitialRadius (Начальный радиус) |
Определяет расстояние от края цели до ее центра перед тем, как объект был изменен. |
InitialTimestamp (Начальная временная метка) |
Определяет начальную временную метку для целевого объекта с инерцией. |
InitialVelocityX (Начальная скорость по горизонтали) |
Определяет начальное движение целевого объекта по горизонтальной оси. |
InitialVelocityY (Начальная скорость по вертикали) |
Определяет начальное движение целевого объекта по вертикальной оси. |
Способы: | |
HRESULT Reset(); | Инициализирует процессор с начальной временной меткой. |
HRESULT Process( [out] BOOL* completed ); |
Выполняет вычисления для данной отметки и может породить событие Delta (Дельта) или Completed (Завершение) в зависимости от того, завершена ли экстраполяция или нет. Если экстраполяция завершена на предыдущей отметке, то способ не работает (no-op). |
HRESULT ProcessTime( [in] DWORD timestamp, [out] BOOL* completed ); |
Выполняет вычисления для данной отметки и может породить событие Delta (Дельта) или Completed (Завершение) в зависимости от того, завершена ли экстраполяция или нет. Если экстраполяция завершена на предыдущей отметке, то способ не работает (no-op). |
HRESULT Complete(); | Порождает событие Completed (Завершение). |
HRESULT CompleteTime( [in] DWORD timestamp ); |
Обрабатывает данную отметку и порождает событие Completed (Завершение). |
События: | |
HRESULT ManipulationStarted( [in] FLOAT x, [in] FLOAT y ); |
Обработка события, когда управление началось. |
HRESULT ManipulationDelta( [in] FLOAT x, [in] FLOAT y, [in] FLOAT translationDeltaX, [in] FLOAT translationDeltaY, [in] FLOAT scaleDelta, [in] FLOAT expansionDelta, [in] FLOAT rotationDelta, [in] FLOAT cumulativeTranslationX, [in] FLOAT cumulativeTranslationY, [in] FLOAT cumulativeScale, [in] FLOAT cumulativeExpansion, [in] FLOAT cumulativeRotation, ); |
Обработка событий, которые происходят, когда управляемый объект изменяется. |
HRESULT ManipulationCompleted( [in] FLOAT x, [in] FLOAT y, [in] FLOAT cumulativeTranslationX, [in] FLOAT cumulativeTranslationY, [in] FLOAT cumulativeScale, [in] FLOAT cumulativeExpansion, [in] FLOAT cumulativeRotation, ); |
Обработка события, когда управление завершилось. |
В таблице выше, инерционная система может обеспечить перечисленные события на том же интерфейсе, на котором приложение ранее принимало события на основе пользовательского перемещения.
Из вышеупомянутого будет очевидно, что конкретные варианты осуществления инерционной системы рассматривались здесь с целями иллюстрации, но что различные модификации могут быть сделаны без отклонения от идеи и области действия изобретения. Например, хотя система рассматривалась в контексте манипуляций multi-touch, система обеспечивает моделирование инерции, которая может использоваться в других контекстах, таких, как игры и другие области, где обычно используется моделирование. Соответственно, изобретение не ограничивается кроме как прилагаемой формулой изобретения.
Claims (20)
1. Способ, осуществляемый на компьютерном устройстве, содержащем поверхность сенсорного ввода и дисплей, при этом способ предназначен для обеспечения реалистичного перемещения на дисплее объектов, воздействие на которые выполняется с использованием ввода множественным касанием через поверхность сенсорного ввода, причем способ содержит этапы, на которых:
определяют, что пользователь высвободил объект приложения, соответствующий приложению, исполняющемуся на компьютерном устройстве, путем удаления одного или более контактов, связанных с вводом множественным касанием, с поверхности сенсорного ввода, при этом объект приложения отображается на дисплее;
после данного определения вызывают инерционный интерфейс прикладного программирования (API), исполняющийся на компьютерном устройстве, для обработки моделирования перемещения объекта приложения для текущего периода обработки инерции, причем инерционный API обеспечивает независимую от приложений платформу, активируемую различными приложениями на компьютерном устройстве, при этом инерционным API моделируются инерционные перемещения объектов, независимо от типа объекта приложения;
принимают посредством приложения инерционное событие, сгенерированное инерционным API после упомянутого определения, причем инерционное событие описывает воздействие на объект на основе смоделированной инерции; и
обрабатывают принимаемое инерционное событие на основе эффекта упомянутого воздействия в контексте приложения путем изменения объекта приложения и отображения объекта приложения на дисплее соответственным образом.
определяют, что пользователь высвободил объект приложения, соответствующий приложению, исполняющемуся на компьютерном устройстве, путем удаления одного или более контактов, связанных с вводом множественным касанием, с поверхности сенсорного ввода, при этом объект приложения отображается на дисплее;
после данного определения вызывают инерционный интерфейс прикладного программирования (API), исполняющийся на компьютерном устройстве, для обработки моделирования перемещения объекта приложения для текущего периода обработки инерции, причем инерционный API обеспечивает независимую от приложений платформу, активируемую различными приложениями на компьютерном устройстве, при этом инерционным API моделируются инерционные перемещения объектов, независимо от типа объекта приложения;
принимают посредством приложения инерционное событие, сгенерированное инерционным API после упомянутого определения, причем инерционное событие описывает воздействие на объект на основе смоделированной инерции; и
обрабатывают принимаемое инерционное событие на основе эффекта упомянутого воздействия в контексте приложения путем изменения объекта приложения и отображения объекта приложения на дисплее соответственным образом.
2. Способ по п.1, дополнительно содержащий, после определения того, что пользователь высвободил объект, этап, на котором инициализируют инерционный API путем передачи ссылки на процессор воздействия, который обрабатывал перемещение данного объекта перед тем, как пользователь высвободил объект.
3. Способ по п.1, дополнительно содержащий, после определения того, что пользователь высвободил объект, этап, на котором инициализируют инерционный API путем передачи одного или более параметров, описывающих состояние объекта, когда пользователь высвободил объект.
4. Способ по п.1, в котором при приеме инерционного события принимают информацию, описывающую двумерное аффинное преобразование объекта приложения.
5. Способ по п.1, в котором воздействие, описываемое инерционным событием, включает в себя по меньшей мере одно из воздействия для поворота, воздействия для переноса и воздействия для масштабирования.
6. Способ по п.1, в котором принимаемое инерционное событие является поворотом, при этом обработка принимаемого инерционного события содержит поворот объекта приложения на дисплее.
7. Способ по п.1, дополнительно содержащий этап, на котором устанавливают таймер, который определяет длительность периода обработки инерции, при этом приложение вызывает инерционный API при каждом запуске таймера.
8. Способ по п.7, дополнительно содержащий этап, на котором принимают от инерционного API указание о том, что моделирование завершено, и таймер истекает, когда это указание принимается.
9. Способ по п.1, в котором при приеме инерционного события принимают уведомление через интерфейс событий СОМ (модели компонентных объектов).
10. Машиночитаемый носитель информации, на котором закодированы инструкции для управления компьютерным устройством, содержащим дисплей и поверхность сенсорного ввода, для моделирования перемещения на дисплее объекта приложения, ранее перемещаемого посредством ввода множественным касанием через поверхность сенсорного ввода, причем объект приложения является частью приложения, исполняющегося на компьютерном устройстве, посредством способа, содержащего этапы, на которых:
принимают один или более начальных параметров моделирования, которые предоставляют состояние объекта приложения, соответствующее высвобождению пользователем объекта приложения путем прекращения контакта с поверхностью сенсорного ввода;
инициализируют машину моделирования, которая выполняет вычисления для моделирования инерции объекта приложения на основе начальных параметров моделирования;
принимают указание текущего периода моделирования;
моделируют посредством машины моделирования инерционное перемещение объекта приложения на основе упомянутых начальных параметров, какого-либо предыдущего моделирования инерции, выполненного машиной моделирования, и времени, которое прошло с какого-либо предыдущего периода моделирования; и
выдают инерционное событие для передачи информации преобразования, описывающей текущее перемещение объекта приложения, в приложение, при этом объект приложения отображается на дисплее в соответствии с информацией преобразования.
принимают один или более начальных параметров моделирования, которые предоставляют состояние объекта приложения, соответствующее высвобождению пользователем объекта приложения путем прекращения контакта с поверхностью сенсорного ввода;
инициализируют машину моделирования, которая выполняет вычисления для моделирования инерции объекта приложения на основе начальных параметров моделирования;
принимают указание текущего периода моделирования;
моделируют посредством машины моделирования инерционное перемещение объекта приложения на основе упомянутых начальных параметров, какого-либо предыдущего моделирования инерции, выполненного машиной моделирования, и времени, которое прошло с какого-либо предыдущего периода моделирования; и
выдают инерционное событие для передачи информации преобразования, описывающей текущее перемещение объекта приложения, в приложение, при этом объект приложения отображается на дисплее в соответствии с информацией преобразования.
11. Машиночитаемый носитель по п.10, при этом машина моделирования моделирует реалистичный процесс замедления для объекта приложения после приведения его в движение пользователем посредством касания этого объекта.
12. Машиночитаемый носитель по п.10, при этом машина моделирования имитирует реалистичное упругое поведение для объекта приложения, когда объект приложения перекрывается с другим элементом на дисплее.
13. Машиночитаемый носитель по п.10, в котором при приеме указания текущего периода моделирования принимают от приложения вызов функции обработки моделирования.
14. Машиночитаемый носитель по п.10, в котором способ дополнительно содержит этап, на котором определяют, завершилось ли моделирование, и, если моделирование завершилось, информируют приложение о том, что моделирование завершилось.
15. Компьютерное устройство для обработки сенсорного ввода с аппаратного обеспечения мультисенсорного ввода, содержащее:
модуль, который принимает низкоуровневые вводы для различных приложений от мультисенсорного устройства ввода, переводит низкоуровневые вводы в воздействия, принимаемые этими различными приложениями, при этом, по меньшей мере, некоторые из воздействий основываются на соответственных совокупностях из низкоуровневых вводов, причем воздействия содержат двумерные аффинные преобразования;
приложение, содержащее графический объект, отображаемый на дисплее, причем с графическим объектом взаимодействует пользователь путем контакта с мультисенсорным устройством ввода, так что соответствующие низкоуровневые вводы, направленные на графический объект, принимаются упомянутым модулем и приложение принимает соответствующие воздействия, генерируемые данным модулем, которые используются приложением для отображения графического объекта, при этом, когда пользователь прекращает контакт с мультисенсорным устройством ввода, упомянутый модуль продолжает генерировать воздействия для графического объекта путем моделирования замедляющегося инерционного перемещения данного объекта.
модуль, который принимает низкоуровневые вводы для различных приложений от мультисенсорного устройства ввода, переводит низкоуровневые вводы в воздействия, принимаемые этими различными приложениями, при этом, по меньшей мере, некоторые из воздействий основываются на соответственных совокупностях из низкоуровневых вводов, причем воздействия содержат двумерные аффинные преобразования;
приложение, содержащее графический объект, отображаемый на дисплее, причем с графическим объектом взаимодействует пользователь путем контакта с мультисенсорным устройством ввода, так что соответствующие низкоуровневые вводы, направленные на графический объект, принимаются упомянутым модулем и приложение принимает соответствующие воздействия, генерируемые данным модулем, которые используются приложением для отображения графического объекта, при этом, когда пользователь прекращает контакт с мультисенсорным устройством ввода, упомянутый модуль продолжает генерировать воздействия для графического объекта путем моделирования замедляющегося инерционного перемещения данного объекта.
16. Компьютерное устройство по п.15, в котором упомянутый модуль моделирует замедляющееся инерционное перемещение в соответствии с состоянием объекта перед тем, как пользователь прекратил контакт с мультисенсорным устройством ввода.
17. Компьютерное устройство по п.16, в котором упомянутое состояние содержит скорость и направление объекта приложения.
18. Компьютерное устройство по п.15, в котором низкоуровневые вводы содержат позиции, в которых пользователь осуществляет контакт с мультисенсорным устройством ввода.
19. Компьютерное устройство по п.15, в котором упомянутый модуль обеспечивает прием приложением уведомления о том, что графический объект остановился.
20. Компьютерное устройство по п.15, в котором воздействия до и после того, как пользователь прекратит контакт с мультисенсорным устройством ввода, имеют один и тот же формат и один и тот же канал связи с приложением.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/258,439 | 2008-10-26 | ||
US12/258,439 US8477103B2 (en) | 2008-10-26 | 2008-10-26 | Multi-touch object inertia simulation |
PCT/US2009/060977 WO2010048051A2 (en) | 2008-10-26 | 2009-10-16 | Multi-touch object inertia simulation |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2011116315A RU2011116315A (ru) | 2012-10-27 |
RU2534486C2 true RU2534486C2 (ru) | 2014-11-27 |
Family
ID=42117010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2011116315/08A RU2534486C2 (ru) | 2008-10-26 | 2009-10-16 | Моделирование инерции объектов при вводе множественным касанием |
Country Status (11)
Country | Link |
---|---|
US (5) | US8477103B2 (ru) |
EP (1) | EP2342638B1 (ru) |
JP (1) | JP5475792B2 (ru) |
KR (1) | KR101597383B1 (ru) |
CN (1) | CN102197377B (ru) |
AR (1) | AR073981A1 (ru) |
BR (1) | BRPI0919074A2 (ru) |
ES (1) | ES2771356T3 (ru) |
RU (1) | RU2534486C2 (ru) |
TW (1) | TWI494795B (ru) |
WO (1) | WO2010048051A2 (ru) |
Families Citing this family (98)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8225231B2 (en) | 2005-08-30 | 2012-07-17 | Microsoft Corporation | Aggregation of PC settings |
US8411046B2 (en) | 2008-10-23 | 2013-04-02 | Microsoft Corporation | Column organization of content |
US20100107100A1 (en) | 2008-10-23 | 2010-04-29 | Schneekloth Jason S | Mobile Device Style Abstraction |
US8466879B2 (en) | 2008-10-26 | 2013-06-18 | Microsoft Corporation | Multi-touch manipulation of application objects |
US8477103B2 (en) * | 2008-10-26 | 2013-07-02 | Microsoft Corporation | Multi-touch object inertia simulation |
KR101513019B1 (ko) * | 2008-10-27 | 2015-04-17 | 엘지전자 주식회사 | 휴대 단말기 및 그 동작방법 |
US8238876B2 (en) | 2009-03-30 | 2012-08-07 | Microsoft Corporation | Notifications |
US8175653B2 (en) | 2009-03-30 | 2012-05-08 | Microsoft Corporation | Chromeless user interface |
US8836648B2 (en) | 2009-05-27 | 2014-09-16 | Microsoft Corporation | Touch pull-in gesture |
US8514188B2 (en) * | 2009-12-30 | 2013-08-20 | Microsoft Corporation | Hand posture mode constraints on touch input |
US20130047110A1 (en) * | 2010-06-01 | 2013-02-21 | Nec Corporation | Terminal process selection method, control program, and recording medium |
JP2012003508A (ja) * | 2010-06-16 | 2012-01-05 | Toshiba Corp | 情報処理装置、方法及びプログラム |
CN102314297B (zh) * | 2010-07-07 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 一种窗口对象惯性移动方法及实现装置 |
KR101780020B1 (ko) * | 2010-09-02 | 2017-09-19 | 삼성전자주식회사 | 인터페이스 방법 및 장치 |
US9110564B2 (en) * | 2010-11-05 | 2015-08-18 | Lg Electronics Inc. | Mobile terminal, method for controlling mobile terminal, and method for displaying image of mobile terminal |
KR101189630B1 (ko) | 2010-12-03 | 2012-10-12 | 한국기술교육대학교 산학협력단 | 멀티터치를 이용한 오브젝트 제어장치 및 그 방법 |
US9244545B2 (en) | 2010-12-17 | 2016-01-26 | Microsoft Technology Licensing, Llc | Touch and stylus discrimination and rejection for contact sensitive computing devices |
US8660978B2 (en) | 2010-12-17 | 2014-02-25 | Microsoft Corporation | Detecting and responding to unintentional contact with a computing device |
US8988398B2 (en) | 2011-02-11 | 2015-03-24 | Microsoft Corporation | Multi-touch input device with orientation sensing |
US8994646B2 (en) | 2010-12-17 | 2015-03-31 | Microsoft Corporation | Detecting gestures involving intentional movement of a computing device |
US8982045B2 (en) | 2010-12-17 | 2015-03-17 | Microsoft Corporation | Using movement of a computing device to enhance interpretation of input events produced when interacting with the computing device |
US20120159383A1 (en) | 2010-12-20 | 2012-06-21 | Microsoft Corporation | Customization of an immersive environment |
US20120159395A1 (en) | 2010-12-20 | 2012-06-21 | Microsoft Corporation | Application-launching interface for multiple modes |
US8612874B2 (en) | 2010-12-23 | 2013-12-17 | Microsoft Corporation | Presenting an application change through a tile |
US8689123B2 (en) | 2010-12-23 | 2014-04-01 | Microsoft Corporation | Application reporting in an application-selectable user interface |
US9423951B2 (en) * | 2010-12-31 | 2016-08-23 | Microsoft Technology Licensing, Llc | Content-based snap point |
US8988087B2 (en) | 2011-01-24 | 2015-03-24 | Microsoft Technology Licensing, Llc | Touchscreen testing |
US8725443B2 (en) | 2011-01-24 | 2014-05-13 | Microsoft Corporation | Latency measurement |
US9201520B2 (en) | 2011-02-11 | 2015-12-01 | Microsoft Technology Licensing, Llc | Motion and context sharing for pen-based computing inputs |
US8982061B2 (en) | 2011-02-12 | 2015-03-17 | Microsoft Technology Licensing, Llc | Angular contact geometry |
US9542092B2 (en) | 2011-02-12 | 2017-01-10 | Microsoft Technology Licensing, Llc | Prediction-based touch contact tracking |
US8773377B2 (en) | 2011-03-04 | 2014-07-08 | Microsoft Corporation | Multi-pass touch contact tracking |
TWI483171B (zh) * | 2011-03-10 | 2015-05-01 | Chi Mei Comm Systems Inc | 檔案管理系統及方法 |
US9383917B2 (en) | 2011-03-28 | 2016-07-05 | Microsoft Technology Licensing, Llc | Predictive tiling |
JP5743198B2 (ja) | 2011-04-28 | 2015-07-01 | 株式会社ワコム | マルチタッチ・マルチユーザ検出装置 |
US9104440B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US9658766B2 (en) | 2011-05-27 | 2017-05-23 | Microsoft Technology Licensing, Llc | Edge gesture |
US20120304132A1 (en) | 2011-05-27 | 2012-11-29 | Chaitanya Dev Sareen | Switching back to a previously-interacted-with application |
US9104307B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US8893033B2 (en) | 2011-05-27 | 2014-11-18 | Microsoft Corporation | Application notifications |
US9158445B2 (en) | 2011-05-27 | 2015-10-13 | Microsoft Technology Licensing, Llc | Managing an immersive interface in a multi-application immersive environment |
US8913019B2 (en) | 2011-07-14 | 2014-12-16 | Microsoft Corporation | Multi-finger detection and component resolution |
US8687023B2 (en) | 2011-08-02 | 2014-04-01 | Microsoft Corporation | Cross-slide gesture to select and rearrange |
US20130057587A1 (en) | 2011-09-01 | 2013-03-07 | Microsoft Corporation | Arranging tiles |
US9557909B2 (en) | 2011-09-09 | 2017-01-31 | Microsoft Technology Licensing, Llc | Semantic zoom linguistic helpers |
US10353566B2 (en) | 2011-09-09 | 2019-07-16 | Microsoft Technology Licensing, Llc | Semantic zoom animations |
US9378389B2 (en) | 2011-09-09 | 2016-06-28 | Microsoft Technology Licensing, Llc | Shared item account selection |
US8922575B2 (en) | 2011-09-09 | 2014-12-30 | Microsoft Corporation | Tile cache |
US8933952B2 (en) | 2011-09-10 | 2015-01-13 | Microsoft Corporation | Pre-rendering new content for an application-selectable user interface |
US9244802B2 (en) | 2011-09-10 | 2016-01-26 | Microsoft Technology Licensing, Llc | Resource user interface |
US9146670B2 (en) | 2011-09-10 | 2015-09-29 | Microsoft Technology Licensing, Llc | Progressively indicating new content in an application-selectable user interface |
TWI456449B (zh) * | 2011-10-14 | 2014-10-11 | Acer Inc | 具有多個觸控介面的電子裝置以及利用多個觸控介面操控三維影像之方法 |
US9274642B2 (en) | 2011-10-20 | 2016-03-01 | Microsoft Technology Licensing, Llc | Acceleration-based interaction for multi-pointer indirect input devices |
US9658715B2 (en) | 2011-10-20 | 2017-05-23 | Microsoft Technology Licensing, Llc | Display mapping modes for multi-pointer indirect input devices |
KR101858608B1 (ko) * | 2011-10-28 | 2018-05-17 | 엘지전자 주식회사 | 이동 단말기 및 이동 단말기의 제어 방법 |
JP5833906B2 (ja) * | 2011-12-13 | 2015-12-16 | 任天堂株式会社 | 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法 |
US9372612B2 (en) | 2011-10-31 | 2016-06-21 | Microsoft Technology Licensing, Llc | Exposing inertial snap points |
US9785281B2 (en) | 2011-11-09 | 2017-10-10 | Microsoft Technology Licensing, Llc. | Acoustic touch sensitive testing |
JP2013105395A (ja) * | 2011-11-15 | 2013-05-30 | Sony Corp | 情報処理装置及び方法、並びにプログラム |
US9389679B2 (en) | 2011-11-30 | 2016-07-12 | Microsoft Technology Licensing, Llc | Application programming interface for a multi-pointer indirect touch input device |
US9223472B2 (en) | 2011-12-22 | 2015-12-29 | Microsoft Technology Licensing, Llc | Closing applications |
US10872454B2 (en) | 2012-01-06 | 2020-12-22 | Microsoft Technology Licensing, Llc | Panning animations |
US8914254B2 (en) | 2012-01-31 | 2014-12-16 | Microsoft Corporation | Latency measurement |
US8902181B2 (en) | 2012-02-07 | 2014-12-02 | Microsoft Corporation | Multi-touch-movement gestures for tablet computing devices |
US9128605B2 (en) | 2012-02-16 | 2015-09-08 | Microsoft Technology Licensing, Llc | Thumbnail-image selection of applications |
CN104169920B (zh) * | 2012-02-24 | 2017-11-17 | 珀金埃尔默资讯科技公司 | 用于使用触摸及手势绘制化学结构的***、方法及设备 |
US9977876B2 (en) | 2012-02-24 | 2018-05-22 | Perkinelmer Informatics, Inc. | Systems, methods, and apparatus for drawing chemical structures using touch and gestures |
CN105159562A (zh) * | 2012-03-31 | 2015-12-16 | 北京奇虎科技有限公司 | 一种基于用户界面的操作触发方法、装置及终端设备 |
TWI476706B (zh) * | 2012-04-30 | 2015-03-11 | Pixart Imaging Inc | 偵測物件移動輸出命令的方法及其系統 |
CN103389815B (zh) * | 2012-05-08 | 2016-08-03 | 原相科技股份有限公司 | 侦测物件移动输出命令的方法及其*** |
US9317147B2 (en) | 2012-10-24 | 2016-04-19 | Microsoft Technology Licensing, Llc. | Input testing tool |
DE102013000272A1 (de) * | 2013-01-09 | 2014-07-10 | Daimler Ag | Verfahren zum Bewegen eines auf einer Anzeigevorrichtung eines Fahrzeugs dargestellten Bildinhalts, Bedien- und Anzeigevorrichtung für ein Fahrzeug und Computerprogrammprodukt |
US20140282279A1 (en) * | 2013-03-14 | 2014-09-18 | Cirque Corporation | Input interaction on a touch sensor combining touch and hover actions |
JP5983499B2 (ja) * | 2013-03-29 | 2016-08-31 | ソニー株式会社 | 表示制御装置、表示制御方法、およびプログラム |
US9450952B2 (en) | 2013-05-29 | 2016-09-20 | Microsoft Technology Licensing, Llc | Live tiles without application-code execution |
FI20135508L (fi) * | 2013-05-14 | 2014-11-15 | Rovio Entertainment Ltd | Kehittynyt kosketuskäyttöliittymä |
CN104182116A (zh) * | 2013-05-23 | 2014-12-03 | 中兴通讯股份有限公司 | 视图处理方法和视图处理终端 |
CN104346083A (zh) * | 2013-07-25 | 2015-02-11 | 富泰华工业(深圳)有限公司 | 滑动触摸操作的显示控制***及方法 |
US9575639B2 (en) * | 2014-02-27 | 2017-02-21 | Ab Initio Technology Llc | Compound controls |
WO2015149347A1 (en) | 2014-04-04 | 2015-10-08 | Microsoft Technology Licensing, Llc | Expandable application representation |
WO2015154273A1 (en) | 2014-04-10 | 2015-10-15 | Microsoft Technology Licensing, Llc | Collapsible shell cover for computing device |
WO2015154276A1 (en) | 2014-04-10 | 2015-10-15 | Microsoft Technology Licensing, Llc | Slider cover for computing device |
US9870083B2 (en) | 2014-06-12 | 2018-01-16 | Microsoft Technology Licensing, Llc | Multi-device multi-user sensor correlation for pen and computing device interaction |
US9727161B2 (en) | 2014-06-12 | 2017-08-08 | Microsoft Technology Licensing, Llc | Sensor correlation for pen and touch-sensitive computing device interaction |
US9977566B2 (en) * | 2014-06-24 | 2018-05-22 | Google Llc | Computerized systems and methods for rendering an animation of an object in response to user input |
US10254942B2 (en) | 2014-07-31 | 2019-04-09 | Microsoft Technology Licensing, Llc | Adaptive sizing and positioning of application windows |
US10678412B2 (en) | 2014-07-31 | 2020-06-09 | Microsoft Technology Licensing, Llc | Dynamic joint dividers for application windows |
US10592080B2 (en) | 2014-07-31 | 2020-03-17 | Microsoft Technology Licensing, Llc | Assisted presentation of application windows |
US10642365B2 (en) | 2014-09-09 | 2020-05-05 | Microsoft Technology Licensing, Llc | Parametric inertia and APIs |
US9674335B2 (en) | 2014-10-30 | 2017-06-06 | Microsoft Technology Licensing, Llc | Multi-configuration input device |
US10089291B2 (en) | 2015-02-27 | 2018-10-02 | Microsoft Technology Licensing, Llc | Ink stroke editing and manipulation |
US9950542B2 (en) | 2015-03-12 | 2018-04-24 | Microsoft Technology Licensing, Llc | Processing digital ink input subject to monitoring and intervention by an application program |
US10254857B2 (en) | 2016-03-06 | 2019-04-09 | Microsoft Technology Licensing, Llc | Soft touch detection of a stylus |
US10514803B2 (en) | 2016-03-06 | 2019-12-24 | Microsoft Technology Licensing, Llc | Pen in field force sensing calibration |
US11150798B2 (en) | 2016-03-28 | 2021-10-19 | Apple Inc. | Multifunction device control of another electronic device |
WO2017172647A1 (en) * | 2016-03-28 | 2017-10-05 | Apple Inc. | Multifunction device control of another electronic device |
CN108803926A (zh) * | 2018-05-29 | 2018-11-13 | 广东工业大学 | 一种基于触摸点的位移矢量和方向矢量的控制方法 |
WO2020000406A1 (zh) * | 2018-06-29 | 2020-01-02 | 深圳市汇顶科技股份有限公司 | 触摸屏调整方法、触控芯片及电子终端 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2008113045A (ru) * | 2008-04-07 | 2008-08-20 | Александр Виль мович Казакевич (RU) | Способ ввода информации с компактной сенсорной панели (варианты) |
Family Cites Families (149)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5153577A (en) * | 1986-04-28 | 1992-10-06 | Xerox Corporation | Mapping character color attributes into grey pixel patterns |
US5261098A (en) | 1991-08-28 | 1993-11-09 | Sun Microsystems, Inc. | Method and apparatus for deriving object type and obtaining object type attribute values |
US7345675B1 (en) | 1991-10-07 | 2008-03-18 | Fujitsu Limited | Apparatus for manipulating an object displayed on a display device by using a touch screen |
JP2827612B2 (ja) * | 1991-10-07 | 1998-11-25 | 富士通株式会社 | タッチパネル装置およびタッチパネル装置におけるオブジェクトの表示方法。 |
US6850252B1 (en) * | 1999-10-05 | 2005-02-01 | Steven M. Hoffberg | Intelligent electronic appliance system and method |
US5875108A (en) | 1991-12-23 | 1999-02-23 | Hoffberg; Steven M. | Ergonomic man-machine interface incorporating adaptive pattern recognition based control system |
US5475803A (en) | 1992-07-10 | 1995-12-12 | Lsi Logic Corporation | Method for 2-D affine transformation of images |
JP3244798B2 (ja) | 1992-09-08 | 2002-01-07 | 株式会社東芝 | 動画像処理装置 |
US5563632A (en) | 1993-04-30 | 1996-10-08 | Microtouch Systems, Inc. | Method of and apparatus for the elimination of the effects of internal interference in force measurement systems, including touch - input computer and related displays employing touch force location measurement techniques |
US5553224A (en) | 1993-08-04 | 1996-09-03 | Xerox Corporation | Method for dynamically maintaining multiple structural interpretations in graphics system |
US5621434A (en) | 1993-08-11 | 1997-04-15 | Object Technology Licensing Corp. | Cursor manipulation system and method |
US5650941A (en) * | 1994-09-07 | 1997-07-22 | Intel Corporation | Computer architecture for creating and manipulating displayable objects |
US5495566A (en) | 1994-11-22 | 1996-02-27 | Microsoft Corporation | Scrolling contents of a window |
US5692143A (en) | 1994-12-30 | 1997-11-25 | International Business Machines Corporation | Method and system for recalling desktop states in a data processing system |
EP0731333B1 (de) | 1995-03-10 | 2001-01-31 | Dr. Johannes Heidenhain GmbH | Mehrkoordinaten-Tastkopf mit gleichen Auslenkungen |
US5691898A (en) | 1995-09-27 | 1997-11-25 | Immersion Human Interface Corp. | Safe and low cost computer peripherals with force feedback for consumer applications |
US5798769A (en) | 1996-08-15 | 1998-08-25 | Xerox Corporation | Method and apparatus for maintaining links between graphic objects in a free-form graphics display system |
US5790114A (en) | 1996-10-04 | 1998-08-04 | Microtouch Systems, Inc. | Electronic whiteboard with multi-functional user interface |
US6636197B1 (en) * | 1996-11-26 | 2003-10-21 | Immersion Corporation | Haptic feedback effects for control, knobs and other interface devices |
US6195628B1 (en) * | 1997-03-13 | 2001-02-27 | International Business Machines Corporation | Waveform manipulation in time warp simulation |
US6005551A (en) * | 1997-04-25 | 1999-12-21 | Microsoft Corporation | Offline force effect rendering |
US6052735A (en) * | 1997-10-24 | 2000-04-18 | Microsoft Corporation | Electronic mail object synchronization between a desktop computer and mobile device |
US20070177804A1 (en) * | 2006-01-30 | 2007-08-02 | Apple Computer, Inc. | Multi-touch gesture dictionary |
KR100595926B1 (ko) * | 1998-01-26 | 2006-07-05 | 웨인 웨스터만 | 수동 입력 통합 방법 및 장치 |
US8479122B2 (en) * | 2004-07-30 | 2013-07-02 | Apple Inc. | Gestures for touch sensitive input devices |
US7840912B2 (en) | 2006-01-30 | 2010-11-23 | Apple Inc. | Multi-touch gesture dictionary |
US6529210B1 (en) | 1998-04-08 | 2003-03-04 | Altor Systems, Inc. | Indirect object manipulation in a simulation |
JP2000089913A (ja) | 1998-09-08 | 2000-03-31 | Gunze Ltd | タッチパネル入力座標変換装置 |
US6154210A (en) | 1998-11-25 | 2000-11-28 | Flashpoint Technology, Inc. | Method and system for implementing button interface compatibility in touch-screen equipped digital imaging device |
US7469381B2 (en) * | 2007-01-07 | 2008-12-23 | Apple Inc. | List scrolling and document translation, scaling, and rotation on a touch-screen display |
US6597378B1 (en) * | 2000-01-18 | 2003-07-22 | Seiko Epson Corporation | Display device, portable information processing apparatus, information storage medium, and electronic apparatus |
US6822635B2 (en) | 2000-01-19 | 2004-11-23 | Immersion Corporation | Haptic interface for laptop computers and other portable devices |
GB0008537D0 (en) | 2000-04-06 | 2000-05-24 | Ananova Ltd | Character animation |
US6590568B1 (en) | 2000-11-20 | 2003-07-08 | Nokia Corporation | Touch screen drag and drop input technique |
US7039234B2 (en) | 2001-07-19 | 2006-05-02 | Microsoft Corporation | Electronic ink as a software object |
US7038670B2 (en) | 2002-08-16 | 2006-05-02 | Sipix Imaging, Inc. | Electrophoretic display with dual mode switching |
US20030225890A1 (en) | 2002-06-03 | 2003-12-04 | Dunstan Robert A. | State token for thin client devices |
US11275405B2 (en) * | 2005-03-04 | 2022-03-15 | Apple Inc. | Multi-functional hand-held device |
US7027054B1 (en) * | 2002-08-14 | 2006-04-11 | Avaworks, Incorporated | Do-it-yourself photo realistic talking head creation system and method |
US7103852B2 (en) | 2003-03-10 | 2006-09-05 | International Business Machines Corporation | Dynamic resizing of clickable areas of touch screen applications |
US7884804B2 (en) * | 2003-04-30 | 2011-02-08 | Microsoft Corporation | Keyboard with input-sensitive display device |
US7324121B2 (en) * | 2003-07-21 | 2008-01-29 | Autodesk, Inc. | Adaptive manipulators |
JP3968717B2 (ja) | 2003-09-25 | 2007-08-29 | 松下電工株式会社 | 照明器具 |
US7302650B1 (en) | 2003-10-31 | 2007-11-27 | Microsoft Corporation | Intuitive tools for manipulating objects in a display |
US7495659B2 (en) | 2003-11-25 | 2009-02-24 | Apple Inc. | Touch pad for handheld device |
US7167162B2 (en) | 2003-12-12 | 2007-01-23 | Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. | Apparatus and method for controlling a screen pointer |
US7826641B2 (en) * | 2004-01-30 | 2010-11-02 | Electronic Scripting Products, Inc. | Apparatus and method for determining an absolute pose of a manipulated object in a real three-dimensional environment with invariant features |
US7961909B2 (en) * | 2006-03-08 | 2011-06-14 | Electronic Scripting Products, Inc. | Computer interface employing a manipulated object with absolute pose detection component and a display |
US7345681B2 (en) * | 2004-02-17 | 2008-03-18 | Microsoft Corporation | Pen data capture and injection |
FR2866726B1 (fr) | 2004-02-23 | 2006-05-26 | Jazzmutant | Controleur par manipulation d'objets virtuels sur un ecran tactile multi-contact |
WO2005125250A1 (en) | 2004-06-22 | 2005-12-29 | Nortel Networks Limited | Soft handoff in ofdma system |
US7519223B2 (en) | 2004-06-28 | 2009-04-14 | Microsoft Corporation | Recognizing gestures and using gestures for interacting with software applications |
US8381135B2 (en) | 2004-07-30 | 2013-02-19 | Apple Inc. | Proximity detector in handheld device |
JP4763695B2 (ja) * | 2004-07-30 | 2011-08-31 | アップル インコーポレイテッド | タッチ・センシティブ入力デバイスのためのモード・ベースのグラフィカル・ユーザ・インタフェース |
US7653883B2 (en) * | 2004-07-30 | 2010-01-26 | Apple Inc. | Proximity detector in handheld device |
US7724242B2 (en) * | 2004-08-06 | 2010-05-25 | Touchtable, Inc. | Touch driven method and apparatus to integrate and display multiple image layers forming alternate depictions of same subject matter |
US7728821B2 (en) | 2004-08-06 | 2010-06-01 | Touchtable, Inc. | Touch detecting interactive display |
US7434173B2 (en) | 2004-08-30 | 2008-10-07 | Microsoft Corporation | Scrolling web pages using direct interaction |
US20060077183A1 (en) * | 2004-10-08 | 2006-04-13 | Studt Peter C | Methods and systems for converting touchscreen events into application formatted data |
US7208730B2 (en) | 2004-10-14 | 2007-04-24 | International Business Machines Corporation | Programmable molecular manipulating devices |
US7683883B2 (en) * | 2004-11-02 | 2010-03-23 | Pierre Touma | 3D mouse and game controller based on spherical coordinates system and system for use |
US7711681B2 (en) | 2004-11-05 | 2010-05-04 | Accenture Global Services Gmbh | System for distributed information presentation and interaction |
US7574593B2 (en) | 2004-12-03 | 2009-08-11 | Hewlett-Packard Development Company, L.P. | Persistent memory manipulation using EFI |
DE102004060405A1 (de) | 2004-12-14 | 2006-07-06 | Voith Paper Patent Gmbh | Verfahren und Vorrichtung zum Beladen von in einer Suspension enthaltenen Fasern oder enthaltenem Zellstoff mit einem Füllstoff |
CN100374998C (zh) * | 2005-03-01 | 2008-03-12 | 联想(北京)有限公司 | 一种触控式信息输入装置及方法 |
US7499058B2 (en) | 2005-04-22 | 2009-03-03 | Microsoft Corporation | Programmatical access to handwritten electronic ink in a tree-based rendering environment |
US20060250352A1 (en) | 2005-05-05 | 2006-11-09 | Mice Technoligies, Inc. | System and method for improved cursor functionality |
US7928959B1 (en) * | 2005-05-05 | 2011-04-19 | Imi Innovations Inc. | System and method for multiple independent computer inputs using unique device and source identification systems |
KR100811160B1 (ko) * | 2005-06-02 | 2008-03-07 | 삼성전자주식회사 | 사용자명령을 3차원적으로 입력가능한 전자장치 |
US8085318B2 (en) | 2005-10-11 | 2011-12-27 | Apple Inc. | Real-time image capture and manipulation based on streaming data |
US20060292531A1 (en) | 2005-06-22 | 2006-12-28 | Gibson Kenneth H | Method for developing cognitive skills |
US7463263B2 (en) | 2005-07-15 | 2008-12-09 | Sap Portals Israel Ltd. | Declarative specification of model visualizations |
US20110157196A1 (en) * | 2005-08-16 | 2011-06-30 | Exent Technologies, Ltd. | Remote gaming features |
US8098885B2 (en) * | 2005-11-02 | 2012-01-17 | Microsoft Corporation | Robust online face tracking |
US8355410B2 (en) * | 2007-08-17 | 2013-01-15 | At&T Intellectual Property I, L.P. | Location-based mobile gaming application and method for implementing the same using a scalable tiered geocast protocol |
US7958456B2 (en) | 2005-12-23 | 2011-06-07 | Apple Inc. | Scrolling list with floating adjacent index symbols |
AU2006332488A1 (en) * | 2005-12-30 | 2007-07-12 | Apple Inc. | Portable electronic device with multi-touch input |
US7509588B2 (en) | 2005-12-30 | 2009-03-24 | Apple Inc. | Portable electronic device with interface reconfiguration mode |
EP1977334A4 (en) | 2006-01-25 | 2011-01-12 | Greystripe Inc | SYSTEM AND METHOD FOR MANAGING CONTENT IN PRE-EXISTING MOBILE APPLICATIONS |
US8681098B2 (en) | 2008-04-24 | 2014-03-25 | Oblong Industries, Inc. | Detecting, representing, and interpreting three-space input: gestural continuum subsuming freespace, proximal, and surface-contact modes |
US8334841B2 (en) | 2006-03-13 | 2012-12-18 | Navisense | Virtual user interface method and system thereof |
US9395905B2 (en) | 2006-04-05 | 2016-07-19 | Synaptics Incorporated | Graphical scroll wheel |
US9063647B2 (en) | 2006-05-12 | 2015-06-23 | Microsoft Technology Licensing, Llc | Multi-touch uses, gestures, and implementation |
WO2008005102A2 (en) | 2006-05-13 | 2008-01-10 | Sap Ag | Consistent set of interfaces derived from a business object model |
KR100866484B1 (ko) | 2006-05-17 | 2008-11-03 | 삼성전자주식회사 | 다접점 터치 센서를 이용한 손가락의 이동 감지 장치 및방법 |
US8169421B2 (en) * | 2006-06-19 | 2012-05-01 | Cypress Semiconductor Corporation | Apparatus and method for detecting a touch-sensor pad gesture |
US8269725B2 (en) * | 2006-06-28 | 2012-09-18 | Microsoft Corporation | Input simulation system for touch based devices |
US9007299B2 (en) * | 2006-07-14 | 2015-04-14 | Ailive Inc. | Motion control used as controlling device |
US20120208639A1 (en) * | 2006-07-14 | 2012-08-16 | Ailive Inc. | Remote control with motion sensitive devices |
US20080030486A1 (en) | 2006-08-04 | 2008-02-07 | Quiteso Technologies, Llc | Multi-functional pen input device |
US8564544B2 (en) | 2006-09-06 | 2013-10-22 | Apple Inc. | Touch screen device, method, and graphical user interface for customizing display of content category icons |
US8106856B2 (en) | 2006-09-06 | 2012-01-31 | Apple Inc. | Portable electronic device for photo management |
KR100774927B1 (ko) * | 2006-09-27 | 2007-11-09 | 엘지전자 주식회사 | 이동통신 단말기, 메뉴 및 아이템 선택방법 |
US8147316B2 (en) * | 2006-10-10 | 2012-04-03 | Wms Gaming, Inc. | Multi-player, multi-touch table for use in wagering game systems |
US20080122878A1 (en) | 2006-11-24 | 2008-05-29 | Keefe Gary W | Apparatus and method for publishing computer-readable media |
US9311528B2 (en) * | 2007-01-03 | 2016-04-12 | Apple Inc. | Gesture learning |
US8970501B2 (en) | 2007-01-03 | 2015-03-03 | Apple Inc. | Proximity and multi-touch sensor detection and demodulation |
US8970503B2 (en) * | 2007-01-05 | 2015-03-03 | Apple Inc. | Gestures for devices having one or more touch sensitive surfaces |
US7907125B2 (en) | 2007-01-05 | 2011-03-15 | Microsoft Corporation | Recognizing multiple input point gestures |
US7956847B2 (en) * | 2007-01-05 | 2011-06-07 | Apple Inc. | Gestures for controlling, manipulating, and editing of media files using touch sensitive devices |
US7924271B2 (en) | 2007-01-05 | 2011-04-12 | Apple Inc. | Detecting gestures on multi-event sensitive devices |
US7877707B2 (en) * | 2007-01-06 | 2011-01-25 | Apple Inc. | Detecting and interpreting real-world and security gestures on touch and hover sensitive devices |
US7903115B2 (en) | 2007-01-07 | 2011-03-08 | Apple Inc. | Animations |
US8656311B1 (en) | 2007-01-07 | 2014-02-18 | Apple Inc. | Method and apparatus for compositing various types of content |
US7844915B2 (en) | 2007-01-07 | 2010-11-30 | Apple Inc. | Application programming interfaces for scrolling operations |
US20080168402A1 (en) * | 2007-01-07 | 2008-07-10 | Christopher Blumenberg | Application Programming Interfaces for Gesture Operations |
US20080168478A1 (en) | 2007-01-07 | 2008-07-10 | Andrew Platzer | Application Programming Interfaces for Scrolling |
US7872652B2 (en) | 2007-01-07 | 2011-01-18 | Apple Inc. | Application programming interfaces for synchronization |
WO2008095137A2 (en) * | 2007-01-31 | 2008-08-07 | Perceptive Pixel, Inc. | Methods of interfacing with multi-point input devices and multi-point input systems employing interfacing techniques |
KR101426718B1 (ko) | 2007-02-15 | 2014-08-05 | 삼성전자주식회사 | 휴대단말기에서 터치 이벤트에 따른 정보 표시 장치 및방법 |
US8436815B2 (en) | 2007-05-25 | 2013-05-07 | Microsoft Corporation | Selective enabling of multi-input controls |
US8059101B2 (en) | 2007-06-22 | 2011-11-15 | Apple Inc. | Swipe gestures for touch screen keyboards |
US8194117B2 (en) * | 2007-08-08 | 2012-06-05 | Qnx Software Systems Limited | Video phone system |
US20110210931A1 (en) | 2007-08-19 | 2011-09-01 | Ringbow Ltd. | Finger-worn device and interaction methods and communication methods |
US20090079745A1 (en) * | 2007-09-24 | 2009-03-26 | Wey Fun | System and method for intuitive interactive navigational control in virtual environments |
US20090121903A1 (en) | 2007-11-12 | 2009-05-14 | Microsoft Corporation | User interface with physics engine for natural gestural control |
US9857872B2 (en) | 2007-12-31 | 2018-01-02 | Apple Inc. | Multi-touch display screen with localized tactile feedback |
WO2009093241A2 (en) * | 2008-01-23 | 2009-07-30 | N-Trig Ltd. | Graphical object manipulation with a touch sensitive screen |
US20090273560A1 (en) * | 2008-02-04 | 2009-11-05 | Massachusetts Institute Of Technology | Sensor-based distributed tangible user interface |
US20090207175A1 (en) * | 2008-02-15 | 2009-08-20 | Apple Inc. | Animation Using Animation Effect and Trigger Element |
US20090213083A1 (en) * | 2008-02-26 | 2009-08-27 | Apple Inc. | Simulation of multi-point gestures with a single pointing device |
US8797271B2 (en) | 2008-02-27 | 2014-08-05 | Microsoft Corporation | Input aggregation for a multi-touch device |
JP5519539B2 (ja) * | 2008-02-28 | 2014-06-11 | ニューヨーク・ユニバーシティ | 処理装置に入力を与える方法及び装置、並びにセンサパッド |
US8416196B2 (en) | 2008-03-04 | 2013-04-09 | Apple Inc. | Touch event model programming interface |
US8717305B2 (en) * | 2008-03-04 | 2014-05-06 | Apple Inc. | Touch event model for web pages |
JP5743553B2 (ja) * | 2008-03-05 | 2015-07-01 | ザ ボード オブ トラスティーズ オブ ザ ユニヴァーシティー オブ イリノイ | 伸張可能及び折畳み可能な電子デバイス |
US20100149073A1 (en) * | 2008-11-02 | 2010-06-17 | David Chaum | Near to Eye Display System and Appliance |
US8375336B2 (en) | 2008-05-23 | 2013-02-12 | Microsoft Corporation | Panning content utilizing a drag operation |
US8154524B2 (en) * | 2008-06-24 | 2012-04-10 | Microsoft Corporation | Physics simulation-based interaction for surface computing |
WO2010006277A1 (en) * | 2008-07-11 | 2010-01-14 | Wms Gaming Inc. | Methods of receiving electronic wagers in a wagering game via a handheld electronic wager input device |
US20100214243A1 (en) * | 2008-07-15 | 2010-08-26 | Immersion Corporation | Systems and Methods For Interpreting Physical Interactions With A Graphical User Interface |
US8390577B2 (en) | 2008-07-25 | 2013-03-05 | Intuilab | Continuous recognition of multi-touch gestures |
US8142283B2 (en) | 2008-08-20 | 2012-03-27 | Cfph, Llc | Game of chance processing apparatus |
US8749495B2 (en) | 2008-09-24 | 2014-06-10 | Immersion Corporation | Multiple actuation handheld device |
US8810522B2 (en) * | 2008-09-29 | 2014-08-19 | Smart Technologies Ulc | Method for selecting and manipulating a graphical object in an interactive input system, and interactive input system executing the method |
US8477103B2 (en) | 2008-10-26 | 2013-07-02 | Microsoft Corporation | Multi-touch object inertia simulation |
US8466879B2 (en) | 2008-10-26 | 2013-06-18 | Microsoft Corporation | Multi-touch manipulation of application objects |
EP2486450B1 (en) * | 2008-11-02 | 2021-05-19 | David Chaum | Near to eye display system and appliance |
US8419661B2 (en) * | 2008-11-14 | 2013-04-16 | University Of Southern California | Upper limb measurement and rehabilitation method and system |
US8866699B2 (en) * | 2008-12-02 | 2014-10-21 | Fuji Xerox Co., Ltd. | Systems and methods for interacting with mobile devices using external displays |
US8416206B2 (en) * | 2009-07-08 | 2013-04-09 | Smart Technologies Ulc | Method for manipulating a graphic widget in a three-dimensional environment displayed on a touch panel of an interactive input system |
US8819591B2 (en) * | 2009-10-30 | 2014-08-26 | Accuray Incorporated | Treatment planning in a virtual environment |
US8957918B2 (en) * | 2009-11-03 | 2015-02-17 | Qualcomm Incorporated | Methods for implementing multi-touch gestures on a single-touch touch surface |
US8232990B2 (en) | 2010-01-05 | 2012-07-31 | Apple Inc. | Working with 3D objects |
US8878787B2 (en) * | 2010-08-13 | 2014-11-04 | Fujitsu Limited | Multi-touch user input based on multiple quick-point controllers |
US20140096092A1 (en) * | 2011-03-20 | 2014-04-03 | William J. Johnson | System and Method for Indirect Manipulation of User Interface Object(s) |
US20130162519A1 (en) * | 2011-12-23 | 2013-06-27 | Sap Ag | Cross-platform human input customization |
US9311750B2 (en) * | 2012-06-05 | 2016-04-12 | Apple Inc. | Rotation operations in a mapping application |
US9189907B2 (en) | 2013-08-28 | 2015-11-17 | Chiu-Ming Chen | Adjusting device for coin counting machine |
-
2008
- 2008-10-26 US US12/258,439 patent/US8477103B2/en active Active
-
2009
- 2009-10-02 TW TW098133607A patent/TWI494795B/zh not_active IP Right Cessation
- 2009-10-16 WO PCT/US2009/060977 patent/WO2010048051A2/en active Application Filing
- 2009-10-16 KR KR1020117009026A patent/KR101597383B1/ko active IP Right Grant
- 2009-10-16 EP EP09822481.9A patent/EP2342638B1/en active Active
- 2009-10-16 BR BRPI0919074A patent/BRPI0919074A2/pt not_active Application Discontinuation
- 2009-10-16 ES ES09822481T patent/ES2771356T3/es active Active
- 2009-10-16 RU RU2011116315/08A patent/RU2534486C2/ru active
- 2009-10-16 CN CN200980143575.6A patent/CN102197377B/zh active Active
- 2009-10-16 JP JP2011533249A patent/JP5475792B2/ja active Active
- 2009-10-26 AR ARP090104120A patent/AR073981A1/es active IP Right Grant
-
2013
- 2013-06-17 US US13/919,957 patent/US9189096B2/en active Active
-
2015
- 2015-10-16 US US14/884,770 patent/US9582140B2/en active Active
-
2017
- 2017-01-20 US US15/411,617 patent/US9898190B2/en active Active
-
2018
- 2018-01-04 US US15/862,127 patent/US10503395B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2008113045A (ru) * | 2008-04-07 | 2008-08-20 | Александр Виль мович Казакевич (RU) | Способ ввода информации с компактной сенсорной панели (варианты) |
Also Published As
Publication number | Publication date |
---|---|
JP5475792B2 (ja) | 2014-04-16 |
AR073981A1 (es) | 2010-12-15 |
US9582140B2 (en) | 2017-02-28 |
US20100103118A1 (en) | 2010-04-29 |
ES2771356T3 (es) | 2020-07-06 |
US20180129410A1 (en) | 2018-05-10 |
US20160034136A1 (en) | 2016-02-04 |
TW201019176A (en) | 2010-05-16 |
TWI494795B (zh) | 2015-08-01 |
CN102197377B (zh) | 2014-10-22 |
EP2342638B1 (en) | 2020-01-01 |
EP2342638A2 (en) | 2011-07-13 |
RU2011116315A (ru) | 2012-10-27 |
US20170168708A1 (en) | 2017-06-15 |
KR20110074990A (ko) | 2011-07-05 |
US10503395B2 (en) | 2019-12-10 |
US20130285961A1 (en) | 2013-10-31 |
US9898190B2 (en) | 2018-02-20 |
WO2010048051A2 (en) | 2010-04-29 |
US8477103B2 (en) | 2013-07-02 |
EP2342638A4 (en) | 2017-03-15 |
KR101597383B1 (ko) | 2016-02-24 |
BRPI0919074A2 (pt) | 2015-12-15 |
WO2010048051A3 (en) | 2010-07-22 |
CN102197377A (zh) | 2011-09-21 |
US9189096B2 (en) | 2015-11-17 |
JP2012507077A (ja) | 2012-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2534486C2 (ru) | Моделирование инерции объектов при вводе множественным касанием | |
US10198101B2 (en) | Multi-touch manipulation of application objects | |
Leithinger et al. | Direct and gestural interaction with relief: a 2.5 D shape display | |
US8502795B2 (en) | Physics simulation-based interaction for surface computing | |
US9013509B2 (en) | System and method for manipulating digital images on a computer display | |
JP2012502344A (ja) | 画像センサベースのヒューマンマシンインタフェースを提供する方法システムおよびソフトウェア | |
CN102096548A (zh) | 采用触控式显示器复制对象的方法和*** | |
WO2021068405A1 (zh) | 元素传递方法、装置、设备及存储介质 | |
Sarkar et al. | Virtual content suction user interface for android devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PC41 | Official registration of the transfer of exclusive right |
Effective date: 20150410 |