ЕСТЕСТВЕННЫЙ ВВОД ДЛЯ ДЕЙСТВИЙ С ЭЛЕКТРОННОЙ ТАБЛИЦЕЙ
NATURAL INPUT FOR SPREADSHEET ACTIONS

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Множество людей используют электронные таблицы для взаимодействия с данными. В общем случае пользователи взаимодействуют с электронными таблицами через устройства ввода данных, такие как мыши, сенсорные экраны, графические интерфейсы пользователя и клавиатуры. Иногда это взаимодействие может разочаровывать. Например, взаимодействие с и манипулирование большой электронной таблицей на устройстве с маленьким экраном (например, на сотовом телефоне, планшетном компьютере) могут быть трудными и утомительными.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Это краткое изложение сущности изобретения предоставляется для представления в упрощенной форме подборки концепций, которые дополнительно описаны ниже в подробном описании. Данное краткое изложение сущности изобретения не предназначено для идентификации главных или существенных признаков заявляемого изобретения, и при этом оно не предназначено для использования в качестве помощи при определении объема заявляемого изобретения.
Различные жесты и действия используются для взаимодействия с электронными таблицами. Жесты используются при обработке электронной таблицы и выполнении других действий в электронной таблице. Например, жесты могут использоваться для перемещения в пределах электронной таблицы, выбора данных, фильтрации, сортировки, детализации/снижения уровня детализации, масштабирования, разбиения строк/столбцов, выполнения действия отмены/повтора операции после отмены и т.п. Датчики, которые связаны с устройством, могут также использоваться при взаимодействии с электронными таблицами. Например, акселерометр может использоваться для движений и выполнения операций в пределах электронной таблицы.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 показывает примерное вычислительное устройство;
фиг. 2 показывает примерную систему сенсорного ввода данных;
фиг. 3 показывает систему для использования жестов и информации от датчиков для взаимодействия с приложением;
фиг. 4 показывает жест масштабирования в пределах электронной таблицы;
фиг. 5 показывает использование поля жестов;
фиг. 6 показывает жест «удар каратэ»;
фиг. 7 показывает пользователя, выбирающего данные и затем изображающего жест «диаграмма» для изменения представления выбранных данных;
фиг. 8 показывает пользователя, изображающего на диаграмме жест «линия тренда»;
фиг. 9 показывает жест «комментарий»;
фиг. 10 показывает эффект завихрения в ответ на действие, выполняемое с данными;
фиг. 11 показывает отображение и взаимодействие с элементом пользовательского интерфейса «контроль»;
фиг. 12 показывает объекты электронной таблицы, отображаемые, основываясь на движении устройства; и
фиг. 13 показывает иллюстративный процесс использования жестов и датчиков для взаимодействия с электронной таблицей.
ПОДРОБНОЕ ОПИСАНИЕ
Обращаясь теперь к чертежам, на которых одинаковые цифры представляют одинаковые элементы, будут описаны различные варианты осуществления. В частности, фиг. 1 и соответствующее обсуждение предназначены для обеспечения краткого общего описания подходящей вычислительной среды, в которой могут воплощаться варианты осуществления.
В общем случае программные модули включают в себя подпрограммы, программы, компоненты, структуры данных и структуры другого типа, которые выполняют определенные задачи или воплощают определенные абстрактные типы данных. Могут также использоваться другие конфигурации компьютерных систем, которые включают в себя карманные устройства, многопроцессорные системы, основанную на микропроцессоре или программируемую бытовую электронику, мини-компьютеры, универсальные компьютеры и т.п. Могут также использоваться среды распределенных вычислений, в которых задачи выполняются удаленными устройствами обработки данных, которые соединены через систему связи. В среде распределенных вычислений программные модули могут располагаться и в локальных, и в удаленных запоминающих устройствах.
Обращаясь теперь к фиг. 1, будет описана иллюстративная архитектура вычислительной системы для компьютера 100, используемого в различных вариантах осуществления. Архитектура вычислительной системы, показанная на фиг. 1, может быть сконфигурирована как мобильный телефон или настольный компьютер и включает в себя центральный процессор 5 (CPU), системную память 7, которая включает в себя оперативную память 9 (ОЗУ, RAM), и постоянное запоминающее устройство (ПЗУ, ROM) 10 и системную шину 12, которая соединяет память с центральным процессором (CPU) 5. Согласно вариантам осуществления компьютер 100 является карманным вычислительным устройством, таким как мобильный телефон, планшетный компьютер, портативный компьютер, нэтбук, КПК (карманный персональный компьютер) и т.п.
Базовая система ввода-вывода, содержащая основные подпрограммы, которые помогают передавать информацию между элементами в пределах компьютера, например, во время запуска, хранится в ПЗУ 10. Компьютер 100 дополнительно включает в себя запоминающее устройство 14 большой емкости для хранения операционной системы 16, прикладной программы 24 и других программных модулей 25 и диспетчер 26 жестов, который будет описан более подробно ниже.
Запоминающее устройство 14 большой емкости подключено к CPU 5 через контроллер запоминающих устройств большой емкости (не показан), соединенный с шиной 12. Запоминающее устройство 14 большой емкости и связанные с ним машиночитаемые носители обеспечивают энергонезависимое хранилище для компьютера 100. Хотя описание считываемого компьютером носителя, содержащееся в данной работе, относится к запоминающему устройству большой емкости, такому как жесткий диск или дисковод для компакт-дисков, считываемый компьютером носитель может быть любым доступным физическим носителем, к которому может получать доступ компьютер 100.
Для примера, а не в качестве ограничения, считываемые компьютером носители могут содержать компьютерные носители данных и среды связи. Компьютерные носители данных включают в себя физические энергозависимые и энергонезависимые, сменные и несменные носители, воплощаемые с помощью любого способа или технологии для хранения информации, такой как считываемые компьютером команды, структуры данных, программные модули или другие данные. Компьютерные носители данных включают в себя ОЗУ, ПЗУ, стираемое программируемое постоянное запоминающее устройство (EPROM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), флэш-память или полупроводниковую память другой технологии, компакт-диски (CD-ROM), цифровые универсальные диски («DVD») или другие оптические запоминающие устройства, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитном диске или другие магнитные запоминающие устройства или любой другой носитель, который может использоваться для хранения необходимой информации и к которому может получать доступ компьютер 100, но не ограничены ими.
Согласно различным вариантам осуществления компьютер 100 может работать в сетевой среде, используя логические соединения с удаленными компьютерами через сеть 18, такую как Интернет. Компьютер 100 может соединяться с сетью 18 через блок 20 сетевого интерфейса, подключенный к шине 12. Сетевое соединение может быть беспроводным и/или проводным. Блок 20 сетевого интерфейса может также использоваться для соединения с сетями другого типа и с удаленными компьютерными системами. Компьютер 100 может также включать в себя контроллер 22 ввода-вывода для приема и обработки вводимой информации от множества других устройств, которые включают в себя устройство 28 сенсорного ввода данных/отображения. Устройство сенсорного ввода данных может использовать любую технологию, которая предоставляет возможность сразу распознавать вводимые с помощью сенсорного ввода данные. Например, данные технологии могут включать в себя: тепло, давление пальца, камеры с высокой скоростью записи информации, инфракрасный свет, фиксацию изображения оптическими датчиками, настроенную электромагнитную индукцию, ультразвуковые приемники, микрофоны-преобразователи, лазерные дальномеры, фиксацию теней и т.п., но не ограничены ими. Примерное устройство сенсорного ввода данных показано на фиг. 2. Устройство 28 сенсорного ввода данных может также быть отделено от устройства отображения. Контроллер 22 ввода-вывода может также обеспечивать выходную информацию к одному или большему количеству экранов отображения, принтеров или устройств вывода информации другого типа.
Компьютер 100 может также включать в себя один или большее количество датчиков 21. Согласно варианту осуществления компьютер 100 включает в себя акселерометр для восприятия ускорения компьютера или части компьютера. Например, акселерометр может обнаруживать движения устройства 28 отображения. Акселерометр может быть одноосным или многоосным акселерометром, который используется для восприятия ориентации, ускорения, вибрации и действий другого типа, которые могут восприниматься акселерометром. Устройство может также включать в себя другие датчики, такие как датчики определения местоположения (то есть GPS (глобальной системы определения местоположения)), звуковые датчики, инфракрасные датчики, датчики наклона другого типа и т.п. Информация, принятая датчиком 21, может использоваться для взаимодействия с прикладной программой. Например, когда пользователь совершает движение вычислительного устройства, различные части электронной таблицы могут быть показаны в ответ на это движение.

Как упомянуто кратко выше, в запоминающем устройстве 14 большой емкости и ОЗУ 9 компьютера 100 могут храниться множество программных модулей и файлов данных, которые включают в себя операционную систему 16, подходящую для управления работой сетевого персонального компьютера, такую как операционная система WINDOWS 7 MICROSOFT CORPORATION, Редмонд, Вашингтон. Согласно одному варианту осуществления операционная система сконфигурирована так, чтобы она включала в себя поддержку устройства 28 сенсорного ввода данных. Согласно другому варианту осуществления диспетчер 26 жестов может использоваться для обработки части/всех вводимых с помощью сенсорного ввода данных, которые принимают от устройства 28 сенсорного ввода данных.
Запоминающее устройство 14 большой емкости и ОЗУ 9 могут также хранить один или большее количество программных модулей. В частности запоминающее устройство 14 большой емкости и ОЗУ 9 могут хранить одну или большее количество прикладных программ 24, таких как приложение для работы с электронными таблицами. Согласно варианту осуществления приложением для работы с электронными таблицами является приложение для работы с электронными таблицами MICROSOFT EXCEL. Могут также использоваться другие приложения для работы с электронными таблицами.
Одновременно с работой данного приложения диспетчер 26 жестов сконфигурирован для обнаружения жестов, которые принимает устройство 28 сенсорного ввода данных. В общем случае диспетчер 26 жестов сконфигурирован для восприятия того, когда принимается жест, который относится к выполнению операции одновременно с прикладной программой, такой как приложение для работы с электронными таблицами. Могут приниматься жесты различного типа. Например, могут приниматься жест смахивания, жест вырезания/вставки, жест добавления, жест «завихрение», жест «контроль», жест «диаграмма», жест «линия тренда», жест «комментарий», жест масштабирования, жест сортировки, жест отмены/повтора операции после отмены и т.п.
Диспетчер 26 жестов также сконфигурирован для приема вводимой информации от одного или большего количества датчиков. Информация, принятая от датчика(ов), может использоваться сама по себе и/или в комбинации с принятым жестом. Например, наклон устройства может побуждать электронную таблицу прокручиваться/сдвигаться в направлении наклона. Встряхивание устройства может использоваться для очистки фильтра, сброса состояния, выполнения отмены и т.п. Поворот устройства может вызывать ускорение прокрутки или переход в позицию прокрутки. Сильный наклон устройства (то есть больше 30 градусов или некоторого другого предопределенного угла) может побуждать объекты электронной таблицы, содержащиеся в пределах электронной таблицы 23, появляться вверху электронной таблицы, таким образом предоставляя возможность пользователю выбирать один из объектов электронной таблицы. После выбора объекты электронной таблицы могут возвращаться в свое исходное местоположение, и представление может фокусироваться на выбранном объекте. Жесты и информация от датчиков могут использоваться для изменения отображения информации, активации/отключения функций и/или выполнения операции некоторого другого типа, сопоставленной с приложением 24 или некоторой другой функцией и/или программой. Дополнительные подробности относительно жестов и информации от датчиков будут обеспечены ниже.
Фиг. 2 показывает примерную систему сенсорного ввода данных. Система 200 сенсорного ввода данных, как показано, содержит сенсорный экран 202, который имеет несколько интегрированных в него датчиков 204. Согласно одному варианту осуществления датчики 204 являются инфракрасными (ИК) датчиками. Система 200 сенсорного ввода данных сконфигурирована для обнаружения объектов, которые или контактируют с доступной для касания поверхностью 206, или расположены близко, но фактически не контактируют («находятся рядом») с доступной для касания поверхностью 206. Объекты, которые воспринимаются, могут быть объектами множества различных типов, такими как палец, руки или другие физические объекты. Инфракрасные датчики 204 распределены по всему сенсорному экрану 202 и расположены параллельно доступной для касания поверхности 206. Один или большее количество инфракрасных датчиков 204 могут обнаруживать инфракрасное излучение, отражаемое от объектов, таких как рука 208, как обозначено стрелкой. Хотя термин «над» используется в данном описании, нужно подразумевать, что ориентация системы с сенсорным экраном не имеет значения. Как показано на фиг. 2, доступная для касания поверхность 206 является горизонтальной, но в другом варианте осуществления, сгенерированном с помощью поворота системы 200 по часовой стрелке на 90 градусов, доступная для касания поверхность 206 может быть вертикальной. В данном варианте осуществления объекты, от которых обнаруживают отраженное ИК излучение, находятся со стороны доступной для касания поверхности 206. Термин «над» предназначен для применения ко всем таким ориентациям. Ориентация доступной для касания поверхности 206 может также изменяться на другую ориентацию.
Сенсорный экран 202 может содержать фильтр 212, который поглощает видимый свет и пропускает инфракрасное излучение и который расположен между доступной для касания поверхностью 206 и ИК датчиками 204 для ограждения ИК датчиков 204 от видимого света, падающего на доступную для касания поверхность 206 в случае, когда ИК датчики 204 чувствительны к свету более широкого диапазона длин волн, чем только инфракрасные длины волн.
Сенсорный экран 202 может содержать устройство отображения, которое сконфигурировано для отображения изображений, которые можно просматривать через доступную для касания поверхность 206. Например, отображаемое изображение может быть изображением, относящимся к приложению, например электронной таблицей. Средство отображения может быть, например, LCD (жидкокристаллическим устройством отображения), устройством отображения на органических светоизлучающих диодах (OLED), гибким устройством отображения, таким как электронная бумага, или любым другим подходящим устройством отображения, в котором может быть интегрирован ИК датчик.
Система 200 может содержать заднюю подсветку 216 для устройства отображения. Задняя подсветка 216 может содержать по меньшей мере один ИК источник 218, который сконфигурирован для облучения объектов, контактирующих или находящихся рядом с доступной для касания поверхностью 206, с помощью инфракрасного излучения через доступную для касания поверхность 206, как обозначено стрелками. ИК датчики 204 чувствительны к свету, падающему сверху, таким образом ИК излучение, распространяющееся непосредственно от задней подсветки 216 на ИК датчики 204, не обнаруживается.
Выходной сигнал датчиков 204 может обрабатываться с помощью диспетчера 26 жестов и/или функциональных возможностей, которые включает в себя операционная система или некоторое другое приложение для обнаружения, когда физический объект (например, рука, бутылка, стакан, палец, шляпа и т.д.) физически контактирует с частью поверхности 206 сенсорного ввода данных, и/или физический объект находится в непосредственной близости к поверхности. Например, датчики 204 могут обнаруживать, когда часть руки 208, например, один или большее количество пальцев, соприкасается или находится близко к поверхности 206 сенсорного ввода данных/отображения. Дополнительные датчики могут внедряться в поверхность 206 сенсорного ввода данных/отображения и могут включать в себя, например, акселерометры, датчики давления, температурные датчики, сканеры изображения, сканеры штрихового кода и т.д., для обнаружения множества одновременно вводимой информации.
Когда датчики 204 являются ИК датчиками, ИК излучение, отражаемое от объектов, может отражаться от рук пользователя, пальцев, изображений отражающей краской на объектах, металлических структур на объектах или от любой другой подходящей отражающей поверхности. Пальцы отражают достаточное количество находящегося рядом ИК излучения для обнаружения, что палец или рука расположены в определенном местоположении на или рядом с доступной для касания поверхностью. Более высокая разрешающая способность ИК датчиков может использоваться для сканирования объектов для достижения более высокой разрешающей способности.
Датчики 204 могут содержаться (например, могут внедряться) во множестве местоположений. Плотность датчиков 204 может быть достаточной для того, чтобы можно было обнаруживать контакт по всей поверхности 206 сенсорного ввода данных. Датчики 204 сконфигурированы для выполнения измерений поверхности 206 сенсорного ввода данных/отображения в указанные интервалы, например, 1 мс, 5 мс и т.д., для обнаружения контакта и/или почти контакта. Данные от датчика, принятые от датчиков 204, меняются за интервалы выборки, когда обнаруженные объекты движутся по сенсорной поверхности; обнаруженные объекты больше не находятся в пределах диапазона обнаружения, и когда новые объекты появляются в диапазоне обнаружения. Например, диспетчер 26 жестов может определять, что контакт был сначала обнаружен в первом местоположении и затем контакт впоследствии сдвинулся в другое местоположение. В ответ диспетчер 26 жестов может определять, когда жест принят и какой жест принят.
Фиг. 2 обеспечивает только один пример системы сенсорного ввода данных. В других примерных сенсорных системах задняя подсветка может не содержать ИК источники, и поверхность 206 может включать в себя переднюю подсветку, которая содержит по меньшей мере один ИК источник. В таком примере доступная для касания поверхность 206 системы является поверхностью передней подсветки. Передняя подсветка может содержать световод, так чтобы ИК излучение, испускаемое от ИК источника, проходило через световод и было направлено к доступной для касания поверхности и к любому объекту, контактируемому или находящемуся рядом с ней. В других системах сенсорного экрана и задняя подсветка и передняя подсветка могут содержать ИК источники. В других системах сенсорного экрана нет задней подсветки, и передняя подсветка содержит и ИК источники, и источники видимого света. В дополнительных примерах система может не содержать переднюю подсветку или заднюю подсветку, а вместо этого ИК источники могут быть интегрированы в сенсорный экран. В одном из воплощений система 200 сенсорного ввода данных может содержать устройство отображения OLED, которое содержит OLED ИК излучатели и органические ИК-чувствительные фотодатчики (которые могут содержать обратно-смещенные OLED). Некоторые сенсорные системы могут не включать в себя устройство отображения. Даже если сенсорная система содержит один или большее количество компонентов или элементов отображения, сенсорная система может быть сконфигурирована так, чтобы не выводить изображения. Например, это может происходить, когда планшет сенсорного ввода данных отделен от устройства отображения. Другие примеры включают в себя сенсорную панель, панель для ввода жестов и аналогичные устройства и компоненты, не являющиеся устройствами и компонентами отображения.
Для некоторых приложений может быть необходимым обнаруживать объект, только если он фактически контактирует с доступной для касания поверхностью системы сенсорного экрана. Например, согласно одному варианту осуществления жест не может быть распознан, когда жест выполняется, не касаясь поверхности. Точно также жест может быть распознан, когда его выполняют над поверхностью. ИК источник системы сенсорного ввода данных может включаться, только если касаются доступной для касания поверхности. Альтернативно ИК источник может включаться независимо от того, касаются или нет доступной для касания поверхности, и обнаружение того, произошел или нет фактический контакт между доступной для касания поверхностью и объектом, обрабатывают вместе с выходным сигналом ИК датчика. Фактический контакт между доступной для касания поверхностью и объектом можно обнаруживать с помощью любых подходящих средств, которые включают в себя, например, датчик вибрации или микрофон, соединенный с сенсорным экраном. Неисчерпывающий список примеров датчиков для обнаружения контакта включает в себя основанные на давлении устройства, микроакселерометры, пьезоэлектрические устройства, емкостные датчики, резистивные датчики, индуктивные датчики, лазерные вибромеры и светодиодные вибромеры.
Фиг. 3 показывает систему для использования жестов и информации от датчиков для взаимодействия с приложением. Как показано, система 300 включает в себя приложение 302 для работы с электронными таблицами, код 312 обратного вызова, датчик(и) 304, диспетчер 26 жестов, электронную таблицу 310 и устройство 340 сенсорного ввода данных/отображения. Согласно варианту осуществления мобильное вычислительное устройство включает в себя функциональные возможности системы 300.
Для обеспечения связи с диспетчером 26 жестов может воплощаться одна или большее количество подпрограмм обратного вызова, показанных на фиг. 3, как код 312 обратного вызова. Согласно одному варианту осуществления диспетчер 26 жестов сконфигурирован для приема вводимой информации от устройства 340 сенсорного ввода данных и датчика(ов) 304. Например, диспетчер 26 жестов может обеспечивать указание приложению 302, когда рука пользователя (то есть рука 312) или некоторый другой объект выполняют жест, который используется при взаимодействии с электронной таблицей 310. Информация от датчиков может также приниматься диспетчером 26 жестов для взаимодействия с электронной таблицей 310. Например, пользователь может наклонять или слегка ударять по боковой стороне вычислительного устройства для прокручивания отображения электронной таблицы 310.
Диспетчер 26 жестов сконфигурирован для распознавания жестов множества различных типов. Некоторые из жестов могут зависеть от контекста, использоваться для определенного приложения и/или использоваться во множестве приложений различного типа. Например, жесты могут использоваться для взаимодействия с электронной таблицей 310, которая сопоставлена с приложением 302 для работы с электронными таблицами. Жесты могут приниматься во множестве различных местоположений, связанных с устройством 340 сенсорного ввода данных/отображения. Например, жест может приниматься в пределах отображения электронной таблицы 310, в пределах поля 314 жестов и/или в некотором другом местоположении на устройстве 340 отображения.
Жесты можно предопределять и/или устанавливать по-разному. Например, некоторые жесты можно предопределять так, чтобы они были сопоставлены с определенным действием, тогда как другие жесты могут быть сопоставлены с одним или большим количеством действий пользователя. Например, пользователь может определять, что, когда принимают определенный жест, тогда одна или большее количество операций с электронной таблицей должны происходить. Операция может определяться множеством различных способов. Например, может использоваться программный код, может быть создана макрокоманда, может быть сформирована формула и т.п.
Существует много различных примеров действий, которые могут происходить. Например, определенные жесты, когда они распознаны, могут менять полярность условного форматирования (то есть изменять форматирование с «от наибольших значений к наименьшим» на «от наименьших значений к наибольшим»). Выполнение жеста может изменять форматирование данных (то есть наибольшие значения, которые первоначально отформатированы, чтобы быть зелеными, теперь стали красными после выполнения пользователем определенного жеста). Один или большее количество жестов могут приводить к изменению направления диаграмм. Например, диаграмма первоначально отображала данные с января по март, а после выполнения жеста диаграмма меняется на противоположную, и данные отображаются с марта по январь. Один или большее количество жестов могут показывать больше информации. Например, предполагают, что диаграмма в настоящее время отображает данные с января 2009 г. по март 2009 г. Когда жест принимают, отображение диаграммы меняется, и показывают данные с февраля 2009 г. по июнь 2009 г. Примерные жесты и взаимодействия с электронной таблицей описаны ниже в отношении фиг. 4-12.
Информация от датчиков, принимаемая диспетчером 26 жестов, может использоваться для взаимодействия с электронной таблицей 310. Например, относительное положение вычислительного устройства/устройства отображения может использоваться для определения части электронной таблицы для отображения. Например, движение устройства влево может прокручивать/перемещать отображение электронной таблицы налево, тогда как движение устройства направо может прокручивать/перемещать отображение электронной таблицы направо. Прокрутка/перемещение отображения может быть комбинацией горизонтальной и вертикальной прокрутки/перемещения. Например, движение устройства по диагонали может приводить к равному количеству горизонтальной и вертикальной прокрутки/перемещения. В данной работе термины «прокрутка» и «перемещение» могут использоваться взаимозаменяемо. Движение устройства вверх или вниз может также влиять на отображение электронной таблицы 310. Например, движение устройства вниз может выполнять операцию уменьшения масштаба, так что отображается больше электронной таблицы, тогда как движение устройства в направлении вверх может быть операцией увеличения масштаба, так что отображается более подробный вид электронной таблицы. Согласно варианту осуществления операция уменьшения масштаба отображает вид эскиза для каждого листа рабочей книги электронной таблицы, когда масштабирование превышает предопределенный уровень масштабирования. Движение электронной таблицы вверх/вниз может также приводить к выполнению операции изменения детализации электронной таблицы. Например, движение устройства в направлении вверх может выполнять операцию снижения уровня детализации для уменьшения детализации электронной таблицы, тогда как движение устройства вниз может выполнять операцию увеличения детализации для отображения большего количества деталей.
Скорость движения устройства электронной таблицы/вычислительного устройства может также использоваться при определении скорости прокрутки и/или масштабирования. Например, резкое движение в каком-нибудь направлении может увеличивать скорость действия прокрутки и/или масштабирования. Согласно варианту осуществления можно замедлять/останавливать прокрутку, когда она подходит к предопределенному местоположению («лежачий полицейский») в пределах электронной таблицы. Местоположения «лежачих полицейских» могут размещаться в различных местоположениях в пределах электронной таблицы. Они могут определяться автоматически и/или располагаться вручную. «Лежачий полицейский» может автоматически помещаться всякий раз, когда существует промежуток в данных в пределах электронной таблицы. Например, предполагают, что электронная таблица имеет содержимое в строках 1-3 и 10-20 и не имеет содержимого в строках 4-10. «Лежачий полицейский» может быть помещен в строку 4 (318). Когда пользователь перемещается к строке 4, перемещение останавливается, как будто он попал в конец электронной таблицы. Перемещение может также замедляться, когда оно приближается к концу данных перед «лежачим полицейским». Чтобы продолжить перемещение, пользователь просто снова выполняет операцию перемещения. «Лежачие полицейские» могут также размещаться периодически по всей структуре электронной таблицы (то есть каждые 100 строк, 200 строк, 1000 строк и т.п.). Различные действия могут также быть сопоставлены с «лежачими полицейскими». Например, перемещение по электронной таблице может останавливаться, когда попадают на «лежачего полицейского», замедляться, когда попадают на «лежачего полицейского», и затем убыстряться, когда сдвигаются в сторону от «лежачего полицейского», и т.п.
Ориентация устройства электронной таблицы/вычислительного устройства может также контролироваться. Наклон устройства отображения электронной таблицы вызывает прокрутку/перемещение по отображению электронной таблицы в направлении наклона. Величина наклона и/или скорость наклона могут также использоваться для выполнения операции. Например, резкий наклон устройства в вертикальном направлении может побуждать все объекты электронной таблицы в пределах электронной таблицы 310 появляться вверху электронной таблицы (см. фиг. 12). Наклон может также интерпретироваться для навигации по различным данным в пределах объекта. Например, наклон устройства может обеспечивать навигацию последовательно по данным на диаграмме.
Поворот устройства может использоваться для изменения представлений, которые сопоставлены с электронной таблицей. Например, поворот отображения электронной таблицы может вызывать изменение представления от листового представления к представлению поименованного объекта, которое отображает каждый объект, который сопоставлен с электронной таблицей 310. Точно так же, когда пользователь рассматривает объект, представление может изменяться, основываясь на объекте. Например, когда пользователь рассматривает круговую диаграмму, поворот электронной таблицы может вызывать изменение представления на диаграмму некоторого другого типа (например, на столбчатую диаграмму).
Встряхивание устройства может также быть настроено для выполнения операции, относящейся к электронной таблице. Например, встряхивание устройства может использоваться для очистки фильтров, которые установлены для таблицы или сводной таблицы в пределах электронной таблицы, сброса состояния, выполнения и отмены операций и т.п.
Фиг. 4-12 показывают примерные жесты и действия для взаимодействия с электронной таблицей.
Фиг. 4 показывает жест масштабирования в пределах электронной таблицы. Как показано, фиг. 4 показывает представление 410 электронной таблицы перед масштабированием и масштабированное представление 420 после выполнения операции уменьшения масштаба. Согласно варианту осуществления жест масштабирования обнаруживают, когда пользователь раздвигает в стороны два своих пальца, как показано с помощью жеста 445. Жест увеличения масштаба может обнаруживаться, когда пользователь сближает два своих пальца. Масштабированное представление 420 может показываться, когда пользователь уменьшает масштаб за определенные пределы (то есть <5%) и/или основываясь на скорости взаимного движения двух пальцев при данном жесте. Например, очень быстрое раздвигание пальцев может привести к показу эскизного масштабированного представления 420. Как показано, масштабированное представление 420 является представлением эскиза каждого листа в пределах рабочей книги электронной таблицы. Могут также обеспечиваться другие масштабированные представления. Например, перед масштабированием до представления эскиза каждого листа в пределах электронной таблицы текущее представление поименованного объекта может отображаться на предопределенном уровне масштабирования (например, на уровне масштабирования 15-20%).
Фиг. 5 показывает использование поля жестов. Как показано, фиг. 5 показывает устройство отображения 530, на котором показывают электронную таблицу 540, выбранные данные 512 и поле 518 жестов. Согласно варианту осуществления поле 518 жестов изображено около угла устройства отображения. Жест 516 можно изображать в поле 518 жестов. Каждый жест сопоставлен с определенной командой. Например, некоторые примерные команды показаны с помощью команд 520 поля жестов. Например: изображение S может сохранять электронную таблицу, изображение B может сделать текст полужирным, изображение знака «+» может вводить формулу суммирования, изображение знака «-» может вводить формулу вычитания, изображение стрелки «вверх» может выполнять сортировку в сторону увеличения, изображение стрелки «вниз» может выполнять сортировку в сторону уменьшения, изображение круга может вводить формулу среднего значения. Жесты других команд могут использоваться в пределах поля 518 жестов. Например, пользователь может создавать пользовательские жесты и/или изменять существующие жесты. Эти жесты можно регистрировать и сопоставлять с программным кодом, командами и/или макросами.
Как показано, пользователь произвел выбор данных 512 чисел 10, 12 и 5 жестом 514 и затем изобразил символ «+» в пределах поля 518 жестов. В ответ на изображение символа «+» формулу суммирования вводят в местоположение координатной сетки A4, что вызывает отображение значения 27. Пользователь может изобразить в данном поле жест любой команды, которая подходит для выбранных данных 512. Например, пользователь может изобразить круг в поле 518 жестов, что введет формулу среднего значения, которое будет равно 9, для отображения в местоположении A4.
Хотя поле 518 жестов показано как расположенное в левой нижней части устройства 530 отображения, поле жестов может отображаться в других местоположениях. Например, поле 518 жестов может отображаться поверх электронной таблицы 540 или в любом другом местоположении на устройстве 530 отображения.
Фиг. 6 показывает жест «удар каратэ». Как показано, фиг. 6 показывает прием электронной таблицей 610 горизонтального каратистского жеста 612 и вертикального каратистского жеста 614. Каратистский жест используется для вставки строки/столбца в определенном местоположении в пределах электронной таблицы. Жест «удар каратэ» обнаруживают, когда выполняется телодвижение «удар каратэ». Например, край руки пользователя может обнаруживаться или край другого физического объекта с краем, имеющим аналогичные характеристики с рукой пользователя, может обнаруживаться для приема каратистского жеста. Когда принимают жест 612 горизонтальный «удар каратэ», новую строку вставляют в местоположении жеста «удар каратэ». Когда принимают жест 614 вертикальный «удар каратэ», новый столбец вставляют в местоположении жеста «удар каратэ». В текущем примере новая строка вставлена между строками 2 и 3, и новый столбец вставлен после столбца 6 (см. электронную таблицу 620). Согласно другому варианту осуществления жест «удар каратэ» сопоставляют с другими командами. Например, жест «удар каратэ» может вызывать автоматическое преобразование текста в столбцы.
Фиг. 7 показывает пользователя, выбирающего данные и затем изображающего жест «диаграмма» для изменения представления выбранных данных. Как показано, фиг. 7 показывает электронную таблицу 710, содержащую данные 716. В текущем примере пользователь выбрал данные 716 и затем изобразил жест «диаграмма» для создания отображения диаграммы для представления выбранных данных.
Жест 722 «диаграмма» показывает пользователя, который изображает круг, который представляет круговую диаграмму. Когда пользователь завершает жест 722 «диаграмма», отображается круговая диаграмма 712. Диаграмма может отображаться в различных местоположениях. Например, диаграмма может заменять выбранные данные, диаграмма может размещаться около выбранных данных или диаграмма может размещаться в определяемой пользователем позиции. Диаграмма может также размещаться на другом листе рабочей книги электронной таблицы.
Жест 724 «диаграмма» показывает пользователя, который изображает жест «диаграмма», который имеет форму линии, который создает столбчатую диаграмму 714 для выбранных данных 716. Согласно варианту осуществления диаграммы больше одного типа можно отображать с выбранными данными.
Жест 726 «диаграмма» показывает пользователя, который изображает жест «диаграмма», который имеет форму полукруглой линии, который создает точечную диаграмму 718 для выбранных данных 716. Согласно варианту осуществления диаграммы больше одного типа можно отображать с выбранными данными.
Фиг. 8 показывает пользователя, который изображает жест «диаграмма», который распознается как жест «линия тренда» на диаграмме. Как показано, фиг. 8 показывает столбчатую диаграмму 810, столбчатую диаграмму 814 с линией тренда, точечную диаграмму 820 и точечную диаграмму 824 с логарифмической линией тренда. В примере столбчатой диаграммы пользователь изображает жест 812 «линия тренда», который расположен около краев отображаемых данных элементов диаграммы для создания отображения линии тренда со столбчатой диаграммой (814). В примере точечной диаграммы 820 пользователь изображает жест 822 «линия тренда», который является линией около середины данных, для создания отображения линии тренда с точечными данными 824.
Фиг. 9 показывает жест «комментарий». Жест «комментарий» создает место для комментария около начала жеста «комментарий». Например, на фиг. 9 комментарий расположен около вершины последней столбчатой диаграммы (920). Жест «комментарий» - линия, сопровождаемая частью круга, как показано отображением 910. Хотя показан жест «комментарий», который выполняется на диаграмме, жест «комментарий» может быть расположен в любом месте в пределах отображения и связан с различными типами элементов. Например, жест «комментарий» может быть сопоставлен с одной ячейкой, группой выбранных ячеек, диаграммой, таблицей или некоторым другим объектом. Поле комментария отображают в ответ на прием жеста «комментарий», который предоставляет возможность пользователю вводить комментарий.
Фиг. 10 показывает эффект завихрения в ответ на действие, выполняемое с данными. Как показано, отображение 1010 показывает пользователя, вырезающего выбранные данные. В ответ на выбираемый вариант вырезания отображается динамическое отображение, которое похоже на «завихрение», создавая иллюзию, что вырезаемое содержимое втягивается в палец (1012). Согласно варианту осуществления содержимое исчезает к точке, где палец последний раз контактировал с экраном.
Отображение 1020 показывает пользователя, который вставляет данные. При команде вставки содержимое изображают от точки контакта (1014) пальца, и динамическое отображение завихрения создает иллюзию, что вставляемое содержимое выходит из пальца.
Фиг. 11 показывает отображение и взаимодействие с элементом пользовательского интерфейса «контроль». Элемент 1112 пользовательского интерфейса «контроль» отображают поверх документа, такого как электронная таблица 1110. Согласно варианту осуществления элемент 1112 пользовательского интерфейса «контроль» помещают сбоку экрана со стороны недоминирующей руки (например, для праворуких пользователей - с левой стороны, а для леворуких пользователей - с правой стороны). Когда «контроль» 1112 не удерживают, действие скольжения доминирующей рукой 1114 интерпретируется как перемещение по документу.
Когда удерживают «контроль» (например, недоминирующей рукой), как показано на отображении 1120, любое действие скольжения другой рукой 1124 интерпретируется как выбор ячеек. Различные эффекты могут применяться с помощью отображения «контроль» 1112. Например, сетка электронной таблицы может визуально «изгибаться» в точке контакта с элементом «контроль» для обеспечения визуальной обратной связи, что «контроль» удерживается.
Фиг. 12 показывает объекты электронной таблицы, отображаемые на основе движения устройства.
Отображение 1220 показывает объекты электронной таблицы, удаляемые с отображения. Например, наклон вычислительного устройства в вертикальном направлении может побуждать объекты электронной таблицы в пределах электронной таблицы 1210 появляться сверху электронной таблицы, как показано на отображении 1220. Горизонтальный наклон устройства может побуждать объекты электронной таблицы смещаться к боковой части устройства. После выбора объекта электронная таблица отображается в представлении, центрированном на выбранном объекте. Это обеспечивает более быструю навигацию по объектам на листе.
Отображение 1230 показывает объекты электронной таблицы, отсортированные с помощью веса. Например, пользователь может наклонять вычислительное устройство из альбомного режима в портретный режим и затем встряхивать устройство. Согласно варианту осуществления данные совместные действия сортируют данные таким образом, что наибольшие элементы появляются внизу. Данные могут быть числами, данными диаграммы, объектами электронной таблицы и т.п. Например, при применении к столбчатой диаграмме окажется, что самые весомые столбики диаграммы сместятся вниз.
Обращаясь теперь к фиг. 13, будет описан иллюстративный процесс 1300 использования жестов и датчиков для взаимодействия с электронной таблицей. При изучении обсуждения представленных процедур следует признать, что логические операции различных вариантов осуществления воплощают (1) как последовательность воплощаемых с помощью компьютера действий или программных модулей, работающих в вычислительной системе, и/или (2) как взаимосвязанные компьютерные логические схемы или схемные модули в вычислительной системе. Воплощение является вопросом выбора, зависящего от требований производительности вычислительной системы, которая воплощает изобретение. Соответственно, на логические операции, показанные и формирующие описанные варианты осуществления, ссылаются по-разному как на операции, структурные устройства, действия или модули. Эти операции, структурные устройства, действия и модули можно воплощать в программном обеспечении, во встроенном программном обеспечении, в специализированных цифровых логических схемах и в любой их комбинации.
После начала операции процесс переходит к операции 1310, в которой принимают жест и/или информацию от датчиков. Жест может быть любым из описанных жестов, или могут приниматься другие распознанные жесты, такие как жест «удар каратэ», жест «контроль», жест изменения формы, жест «линия тренда», жест «комментарий», жест масштабирования, жест сортировки и т.п. Согласно одному варианту осуществления пользователь помещает по меньшей мере часть своей руки (например, один или большее количество пальцев) на сенсорную поверхность. Дополнительно согласно некоторым вариантам осуществления пользователь может размещать свою руку около сенсорной поверхности, а не на сенсорной поверхности. Информация от датчиков может относиться к информации от датчиков множества различных типов, которая может использоваться при взаимодействии с устройством отображения. Например, информация от датчиков может относиться к данным акселерометра, которые могут использоваться при определении ориентации вычислительного устройства и скорости устройства.
Переходя к операции 1320, определяют действие для выполнения. Согласно варианту осуществления данное действие относится к взаимодействию с электронной таблицей и содержит такие действия, как перемещение, наклон, сортировка, масштабирование, изменение детализации и т.п. Хотя описанные действия относятся к взаимодействию с электронными таблицами, другие приложения могут использовать описанные жесты.
Переходя к операции 1330, выполняют определенное действие. В общем случае действие относится к обновлению электронной таблицы. Например, может быть составлена таблица, может быть добавлена линия тренда, могут быть отсортированы данные, выполнено суммирование данных или некоторая другая операция может быть выполнена с данными и т.п.
Переходя к операции 1340, обновляют отображение. Отображение обновляют в ответ на действие приема жеста/информации от датчиков, которую принимают.
Процесс затем переходит к операции завершения и возвращается к обработке других действий.
Вышеупомянутое описание, примеры и данные обеспечивают полное описание изготовления и использования состава изобретения. Так как многие варианты осуществления изобретения могут выполняться, не выходя за пределы объема и существа изобретения, объем изобретения определяется прилагаемой формулой изобретения.