ввод и воспроизведение электронных чернил
Классы МПК: | G06F17/00 Устройства или методы цифровых вычислений или обработки данных, специально предназначенные для специфических функций G06T11/80 создание или модифицирование вручную начерченного или нарисованного изображения с использованием входного устройства с ручным управлением, например мышь, световое перо, клавиши направления на клавиатуре |
Автор(ы): | СИЛВЕРМАН Эндрю (US), ДЖОРДЖ Сэм (US), СОМДЖИ Шираз (US), БАЛАЗ Рудольф (US), КАТО Кодзи (US) |
Патентообладатель(и): | МАЙКРОСОФТ КОРПОРЕЙШН (US) |
Приоритеты: |
подача заявки:
2003-08-21 публикация патента:
27.08.2009 |
Изобретение относится к средствам ввода и воспроизведения информации, в том числе электронных чернил. Техническим результатом является обеспечение возможности введения и воспроизведение информации на базе пера, характеризующие такие свойства, как порядок ввода, шаблоны растра слева направо, характер написания с использованием различных языков. Заявленная система содержит объект для приема электронных чернил и подлежащие воспроизведению один или более объектов, на которые ссылается объект для приема электронных чернил, причем объект для приема электронных чернил управляет отображением этих объектов, при этом по меньшей мере один из этих подлежащих воспроизведению объектов не способен работать с электронными чернилами в одиночку, но способен работать с электронными чернилами, когда включен в состав объекта для приема электронных чернил. 4 н. и 14 з.п. ф-лы, 12 ил.
Формула изобретения
1. Реализуемая компьютером система воспроизведения электронных чернил, содержащая
объект для приема электронных чернил и
подлежащие воспроизведению один или более объектов, на которые ссылается объект для приема электронных чернил, причем объект для приема электронных чернил управляет отображением этих объектов,
при этом по меньшей мере один из этих подлежащих воспроизведению объектов не способен работать с электронными чернилами в одиночку, но способен работать с электронными чернилами, когда включен в состав объекта для приема электронных чернил.
2. Система по п.1, в которой объектом для приема электронных чернил является объект «холст для электронных чернил».
3. Система по п.1, в которой объект для приема электронных чернил воспроизводит упомянутые один или более объектов, а затем воспроизводит какие-либо электронные чернила поверх последнего воспроизведенного объекта.
4. Система по п.1, в которой объект для приема электронных чернил перемежает послойное расположение электронных чернил и упомянутых одного или более объектов.
5. Система по п.1, в которой объект для приема электронных чернил воспроизводит электронные чернила, а затем воспроизводит упомянутые один или более объектов поверх воспроизведенных электронных чернил.
6. Система по п.1, в которой объект для приема электронных чернил включает в себя один или более режимов.
7. Система по п.1, в которой объект для приема электронных чернил включает в себя по меньшей мере один метод.
8. Система по п.1, в которой объект для приема электронных чернил включает в себя по меньшей мере одно свойство.
9. Система по п.1, в которой объект для приема электронных чернил предназначен для обеспечения по меньшей мере одного события.
10. Способ воспроизведения электронных чернил, содержащий этапы, на которых
включают один или более подлежащих воспроизведению объектов в состав объекта, который предоставляет функциональные возможности электронных чернил,
воспроизводят упомянутые один или более объектов,
воспроизводят электронные чернила поверх упомянутых одного или более объектов и
вызывают посредством упомянутого объекта событие, связанное с упомянутыми функциональными возможностями электронных чернил.
11. Способ по п.10, дополнительно содержащий этап, на котором изменяют свойство упомянутого объекта.
12. Способ по п.10, дополнительно содержащий этап, на котором исполняют метод, ассоциированный с упомянутым объектом.
13. Машиночитаемый носитель информации с хранящейся на нем машиноисполняемой программой для воспроизведения электронных чернил, при этом упомянутая программа содержит следующие этапы:
включение одного или более подлежащих воспроизведению объектов в состав объекта, который предоставляет функциональные возможности электронных чернил,
воспроизведение упомянутых одного или более объектов,
воспроизведение электронных чернил поверх упомянутых одного или более объектов и
вызов упомянутым объектом события, связанного с упомянутыми функциональными возможностями электронных чернил.
14. Машиночитаемый носитель информации по п.13, в котором упомянутая программа дополнительно содержит следующий этап:
изменение свойства упомянутого объекта.
15. Машиночитаемый носитель информации по п.13, в котором упомянутая программа дополнительно содержит следующий этап:
исполнение метода, ассоциированного с упомянутым объектом.
16. Компьютерная система для воспроизведения электронных чернил, содержащая:
средство для включения одного или более подлежащих воспроизведению объектов в состав объекта, который предоставляет функциональные возможности электронных чернил,
средство для воспроизведения упомянутых одного или более объектов,
средство для воспроизведения электронных чернил поверх упомянутых одного или более объектов и
средство для вызова упомянутым объектом события, связанного с упомянутыми функциональными возможностями электронных чернил.
17. Компьютерная система по п.16, дополнительно содержащая средство для изменения свойства упомянутого объекта.
18. Компьютерная система по п.16, дополнительно содержащая средство для исполнения метода, ассоциированного с упомянутым объектом.
Описание изобретения к патенту
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Аспекты настоящего изобретения относятся к вводу и воспроизведению информации. Более конкретно, аспекты настоящего изобретения относятся к вводу и воспроизведению электронных чернил.
ОПИСАНИЕ ПРЕДШЕСТВУЮЩЕГО УРОВНЯ ТЕХНИКИ, СВЯЗАННОГО С ИЗОБРЕТЕНИЕМ
Люди часто больше полагаются на графические представления информации, чем на ее текстовые представления. Они скорее посмотрят на иллюстрацию, чем на фрагмент текста, который может быть эквивалентен иллюстрации. Например, домовладелец может вырезать из журналов иллюстрации, чтобы в точности показать подрядчику, чего он ждет от ремонта кухни или ванной. Описание в текстовой форме того же самого материала часто не достигает своей цели. Инструмент, которым может пользоваться домовладелец, не более сложен, чем пара ножниц.
Однако в мире, построенном на вычислениях, попытки зафиксировать и передать идентичный контент (информационно значимое содержимое) доставляют много неудобств. Типичные компьютерные системы не предоставляют простой интерфейс для фиксации и передачи графически интенсивного контента. Скорее они оптимизированы для ввода и воспроизведения текста. Например, типичные компьютерные системы, особенно компьютерные системы, использующие системы графического пользовательского интерфейса (ГПИ, GUI), такие как Microsoft WINDOWS, оптимизированы для приема вводимой пользователем информации через одно или более дискретных устройств ввода, таких как клавиатура для ввода текста, и координатно-указательное устройство, такое как мышь с одной или более кнопками для управления пользовательским интерфейсом.
Некоторые вычислительные системы расширили системы ввода и взаимодействия, предлагаемые пользователю, предоставив ему возможность использовать для ввода информации в эти системы перо. Перо может заменить оба устройства: как клавиатуру (для ввода данных), так и мышь (для управления). Некоторые вычислительные системы принимают рукописную электронную информацию или электронные чернила и немедленно пытаются преобразовать электронные чернила в текст. Другие системы позволяют электронным чернилам сохранять рукописную форму.
Несмотря на существование пера, различные подходы к объединению электронных чернил и типичного графического пользовательского интерфейса могут вызвать трудности у разработчиков сторонних приложений. Соответственно, в данной технической области имеется потребность в улучшенной системе ввода и воспроизведения электронных чернил, дружественной по отношению к сторонним разработчикам программного обеспечения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Аспекты настоящего изобретения относятся к одному или более вопросам, упомянутым выше, и тем самым обеспечивают более качественный ввод и воспроизведение контента для использования сторонними разработчиками программного обеспечения. В некоторых вариантах осуществления изобретения элемент ввода и воспроизведения электронных чернил может быть представлен в виде объекта, являющегося частью структуры, в которой каждый элемент в интерфейсе может быть определен по глубине (или z-очередности). В некоторых случаях объект может воспроизвести различные элементы в интерфейсе в определенной для них z-очередности и затем воспроизвести чернила на самом верхнем слое. В других случаях чернила и другие элементы могут быть перемешаны между собой.
Эти и другие аспекты раскрываются в связи с фигурами и относящемуся к ним описанию.
ПЕРЕЧЕНЬ ФИГУР ЧЕРТЕЖЕЙ
Настоящее изобретение проиллюстрировано с помощью примера и не ограничено прилагаемыми фигурами, на которых одинаковые цифры ссылок указывают на одинаковые элементы и где:
Фиг. 1 - компьютер общего назначения, поддерживающий один или более аспектов настоящего изобретения.
Фиг. 2 - дисплей системы ввода на базе пера, соответствующей аспектам настоящего изобретения.
Фиг. 3A и 3B - различные примеры интерфейсов и то, как производится упорядочение в каждом из них в соответствии с аспектами изобретения.
Фиг. 4 - чернила, наложенные на область в соответствии с аспектами настоящего изобретения.
Фиг. 5 - конструкторы и свойства объекта в соответствии с аспектами настоящего изобретения.
Фиг. 6 - методы объекта в соответствии с аспектами настоящего изобретения.
Фиг. 7 - события объекта в соответствии с аспектами настоящего изобретения.
Фиг. 8 - отношения соответствия с объектами и различными режимами согласно аспектам настоящего изобретения.
Фиг. 9A, 9B, 9C - разные степени усечения к области в соответствии с аспектами настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
Аспекты настоящего изобретения относятся к улучшенной системе ввода и воспроизведения электронных чернил.
Для помощи читателю данный документ разделен на разделы. Эти разделы включают в себя характеристики чернил, термины, вычислительную среду общего назначения; упорядочение объектов; конструкторы, свойства, методы и события объектов, отношения и усечение.
Характеристики чернил
Как известно пользователям, использующим чернильные ручки, физические чернила (те, что легли на бумагу в результате использования ручки, имеющей емкость для чернил) могут передать больше информации, чем просто последовательность координат, соединенную отрезками линии. Например, физические чернила могут отразить давление ручки (посредством толщины чернильного следа), угол наклона ручки (посредством формы линейных или криволинейных отрезков и поведения чернил вокруг отдельных точек) и скорость движения пера ручки (посредством прямолинейности, ширины линии и изменений ширины линии по ходу движения линии или кривой). Благодаря этим дополнительным свойствам такие характеристики, как эмоции, личностные особенности, выразительная манера и т.п., могут быть переданы более непосредственно, чем при одинаковой ширине линии между точками.
Электронные чернила (или чернила) относятся к фиксации и отображению электронной информации при использовании пользователем устройства ввода на базе пера. Термин «электронные чернила» относится к последовательности штрихов, где каждый штрих составлен из последовательности точек. Точки могут быть представлены при помощи различных известных способов, включая декартовы координаты (X, Y), полярные координаты (r, T) и другие способы, известные в данной области техники. Электронные чернила могут включать в себя представления свойств реальных чернил, включая давление, угол, скорость, цвет, размер пера, непрозрачность. Электронные чернила могут помимо этого заключать в себе другие свойства, включая порядок, в котором чернила ложились на страницу (например, шаблон растра слева направо, затем вниз, характерный для большинства западных языков), временной ярлык (указывающий, когда были нанесены чернила), указание на автора чернильной записи и устройство, на котором она была сделана (по меньшей мере, одни из следующих идентификационных данных: идентификационные данные вычислительной машины, на которой чернильная запись была сделана, и идентификационные данные пера, использованного для нанесения чернил), а также прочую информацию.
Термины
Чернила - последовательность или совокупность штрихов, имеющих свойства. Последовательность штрихов может включать в себя штрихи, расположенные в упорядоченном виде. Эта последовательность может быть упорядочена по времени ввода или по тому, в каком месте страницы штрихи появились или, в ситуациях соавторства, по автору чернильной записи. Возможны и другие варианты упорядочивания. Совокупность штрихов может включать в себя последовательности штрихов, или неупорядоченные штрихи, или любую комбинацию. Кроме того, некоторые свойства могут быть уникальны для каждого штриха или точки на штрихе (например, давление, скорость, угол наклона ручки и т.п.). Эти свойства могут быть сохранены на уровне штриха или точки, а не на уровне чернил.
Объект «чернила» - структура данных, сохраняющая чернила вместе со свойствами или без них.
Штрих - последовательность или совокупность введенных точек. Например, при воспроизведении последовательность точек может быть соединена линиями. В качестве альтернативы штрих может быть представлен в виде точки и вектора, направленного к следующей точке. Короче говоря, подразумевается, что штрих заключает в себе любое представление точек или отрезков, связанных с чернилами, независимо от скрытого представления точек и/или того, что соединяет точки.
Точка - информация, определяющая положение в пространстве. Например, точки могут быть определены относительно пространства ввода (например, точки на поверхности цифрового преобразователя), виртуального пространства чернил (координаты в пространстве, куда помещаются зафиксированные чернила) и/или пространства отображения (точки или пиксели устройства отображения).
Элементы - объекты, расположенные в виде дерева, где их размещение на дереве служит их порядком.
Вычислительная среда общего назначения
Фиг. 1 изображает схематическое представление иллюстративной обычной цифровой вычислительной среды общего назначения, которая может быть использована для реализации различных аспектов настоящего изобретения. На фиг. 1 компьютер 100 включает в себя процессор 110, системную память 120 и системную шину 130, которая соединяет различные компоненты системы, в том числе системную память, с процессором 110. Системная шина 130 может относиться к любому из нескольких типов структур шины, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, использующие любую из множества архитектур шины. Системная память 120 включает в себя постоянное запоминающее устройство (ПЗУ) 140 и оперативное запоминающее устройства (ОЗУ) 150.
Базовая система ввода-вывода (BIOS), содержащая в себе базовые процедуры, которые способствуют передаче информации между элементами внутри компьютера 100, как, например, при запуске, хранится в ПЗУ 140. Компьютер 100 также содержит в себе накопитель 170 на жестких магнитных дисках для считывания с жесткого магнитного диска (на схеме не показан) и записи на него, дисковод 180 для магнитного диска для считывания со съемного магнитного диска 190 или записи на него и дисковод 191 для считывания со съемного оптического диска 192, такого как CD-ROM или другие оптические носители, и записи на него. Накопитель 170 на жестких магнитных дисках, дисковод 180 для магнитного диска и дисковод 191 для оптического диска соединены с системной шиной 130 посредством интерфейса 192 накопителя на жестких магнитных дисках, интерфейса 193 дисковода для магнитного диска и интерфейса 194 дисковода для оптического диска соответственно. Эти накопители и дисководы и соответствующие им машиночитаемые носители информации обеспечивают энергонезависимое хранение машиночитаемых команд, структур данных, программных модулей и других данных для персонального компьютера 100. Специалистам в данной области техники понятно, что другие типы машиночитаемых носителей информации, способных хранить данные, доступ к которым осуществляется компьютером, такие как кассеты с магнитной лентой, карточки Флэш-памяти, цифровые видео-диски, картриджи Бернулли, оперативные запоминающие устройства (ОЗУ), постоянные запоминающие устройства (ПЗУ) и т.п., также могут быть использованы в этой иллюстративной операционной среде.
В накопителе 170 на жестких магнитных дисках, на магнитном диске 190, оптическом диске 192, в ПЗУ 140 или ОЗУ 150 может храниться некоторое количество программных модулей, включая операционную систему 195, одну или более прикладных программ 196, другие программные модули 197 и данные 198 программ. Пользователь может осуществлять ввод команд и информации в компьютер 100 посредством устройств ввода-вывода, таких как клавиатура 101 и указательное устройство 102. Другие устройства ввода (на схеме не показаны) могут включать в себя микрофон, джойстик, игровую панель, параболическую спутниковую антенну, сканер и т.п. Часто эти и другие устройства ввода соединены с процессором 110 посредством интерфейса последовательного порта 106, подсоединенного к системной шине, но могут быть соединены посредством других интерфейсов, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB) [в настоящее время, поскольку шина USB так популярна, вы, возможно, захотели бы изобразить шину USB на фиг. 1]. Кроме того, также эти устройства могут быть напрямую подсоединены к системной шине 130 через соответствующий интерфейс (на схеме не показан). Монитор 107 или другой тип устройства отображения также подсоединен к системной шине 130 через интерфейс, такой как видео-адаптер 108. В дополнение к монитору персональные компьютеры обычно включают в себя другие периферийные устройства вывода (на схеме не показаны), такие как громкоговорители и принтеры. В одном варианте осуществления для оцифровки рукописно вводимой информации предусмотрен цифровой преобразователь 165 с вводом от пишущего средства и связанное с ним пишущее средство или перо 166. Хотя на фиг. 1 показано прямое соединение между цифровым преобразователем 165 с вводом от пишущего средства и интерфейсом 106 последовательного порта, на практике цифровой преобразователь 165 с вводом от пишущего средства может быть подсоединен к процессору 110 напрямую, через параллельный порт или другой интерфейс и системную шину 130 любым способом, включая беспроводной. Также пишущее средство 166 может иметь связанную с ним камеру и приемопередающее устройство для беспроводной передачи видеоинформации, снятой камерой, на интерфейс, взаимодействующий с шиной 130. Далее, в дополнение к камере или вместо нее пишущее средство может иметь другие сенсорные системы для определения штрихов электронных чернил, включая акселерометры, магнитометры и гироскопы.
Кроме того, хотя цифровой преобразователь 165 показан отдельным от монитора 107, используемая область ввода цифрового преобразователя 165 может совпадать с областью отображения монитора 107. Более того, цифровой преобразователь 165 может быть объединен в одно целое с монитором 107 или может существовать в качестве отдельного устройства, наложенного на монитор 107 или иным образом прикрепленного к нему.
Компьютер 100 может функционировать в сетевой среде, используя логические соединения с одним или более удаленных компьютеров, например с удаленным компьютером 109. Удаленный компьютер 109 может быть сервером, маршрутизатором, сетевым персональным компьютером (ПК, PC), одноранговым устройством или другим узлом общей сети и обычно содержит многие или все элементы, описанные выше в отношении компьютера 100, хотя на фиг. 1 показано только запоминающее устройство 111. Логические соединения, изображенные на фиг. 1, включают в себя локальную сеть (LAN) 112 и глобальную сеть (WAN) 113. Такие сетевые среды часто используются в офисах, сетях масштаба предприятия, интрасетях и в сети Интернет.
При использовании в сетевой среде LAN компьютер 100 соединен с локальной сетью 112 посредством сетевого интерфейса или адаптера 114. При использовании в сетевой среде WAN персональный компьютер 100 обычно содержит модем 115 или другие средства для установления связи через глобальную сеть 113, такую как Интернет. Модем 115, который может быть внутренним или внешним, подсоединен к системной шине 130 через интерфейс 106 последовательного порта. В сетевой среде программные модули, показанные как относящиеся к персональному компьютеру 100, или их части могут храниться в удаленном запоминающем устройстве. Кроме того, система может иметь возможности проводной и/или беспроводной связи. Например, сетевой интерфейс 114 может содержать соединительные возможности класса Bluetooth, SWLan и/или IEEE 802.11. Вполне очевидно, что другие протоколы беспроводной связи могут использоваться в сопряжении с этими протоколами или вместо этих протоколов.
Следует иметь в виду, что показанные сетевые соединения являются примерами и могут быть использованы и другие средства установления линии связи между компьютерами. Предполагается существование любого из различных широко известных протоколов, таких как TCP/IP (протокол управления передачей/интернет протокол), Ethernet, FTP, HTTP (протокол передачи гипертекста) и т.п., и система может функционировать в конфигурации «клиент-сервер», что позволяет пользователю запрашивать web-страницы с web-сервера. Для отображения и манипуляции данными на web-страницах может быть использован любой из различных общепринятых браузеров.
Фиг. 2 изображает иллюстративный вариант планшетного персонального компьютера (Tablet PC) 201, который может быть использован в соответствии с различными аспектами настоящего изобретения. Любые или все из характеристик, подсистем и функций системы, изображенной на фиг. 1 могут быть включены в компьютер по фиг. 2. Планшетный персональный компьютер 201 включает в себя большую поверхность отображения 202, например оцифровывающий плоский панельный дисплей, предпочтительно экран жидкокристаллического дисплея (LCD), на котором отображается множество окон 203. Используя перо 204, пользователь может осуществлять выбор, выделение и/или запись на оцифровывающей отображающей поверхности 202. Примеры подходящих оцифровывающих отображающих поверхностей включают в себя электромагнитные цифровые преобразователи с вводом от пишущего средства, поставляемые компаниями Mutoh или Wacom. Также могут быть использованы другие типы цифровых преобразователей с вводом от пишущего средства, например оптические цифровые преобразователи. Планшетный персональный компьютер 201 интерпретирует движения, выполняемые с использованием пера 204, для манипулирования данными, ввода текста, создания рисунков и/или исполнения обычных компьютерных прикладных заданий, таких как электронные таблицы, программы обработки текстов и т.п.
Перо 204 может быть оснащено одной или более кнопками или другими приспособлениями, расширяющими его возможности в области выбора. В одном варианте осуществления перо 203 могло бы быть реализовано как «карандаш» или «авторучка», в которых один конец представляет собой пишущую часть, а другой конец представляет собой «стирающий» конец и который при движении по дисплею отмечает части отображаемого изображения, подлежащие стиранию. Также могли бы быть использованы другие типы устройств ввода, такие как мышь, шаровой манипулятор и т.п. Кроме того, собственный палец пользователя мог бы быть пером 204 и использоваться для выбора или указания частей отображаемого изображения на сенсорном дисплее или дисплее, чувствительном к приближению. Следовательно, термин «пользовательское устройство ввода» в том значении, в котором оно здесь используется, подразумевает широкое толкование и включает в себя многие разновидности широко известных устройств ввода, подобных перу 204. Область 205 изображает область обратной связи или область контакта, позволяющую пользователю определить, где находится перо при касании отображающей поверхности 202.
В различных вариантах осуществления система предоставляет платформу по работе с чернилами, являющую собой набор сервисов (серверных процессов, выполняющих некоторую системную функцию) СОМ (модели компонентных объектов), которые прикладная программа может использовать для фиксации, манипулирования и сохранения чернил. Один сервис позволяет приложению считывать и записывать чернила, используя описываемые представления чернил. Платформа по работе с чернилами может также содержать язык разметки, включая язык типа расширяемого языка разметки (XML). Далее, в качестве другой реализации система может использовать распределенную модель компонентных объектов DCOM. Могут использоваться и дополнительные реализации, включая модель программирования Win32 и модель программирования.Net, предоставляемые Microsoft Corporation.
Упорядочение объектов
Фиг. 3A и 3B изображают различные способы упорядочения элементов в интерфейсе. На фиг. 3А окно 301 включает в себя элементы 302 и 303. Здесь элемент 302 имеет активное состояние, поэтому он находится впереди элемента 303. На фиг. 3В контент организован в виде дерева. Здесь корневой узел (именуемый «корнем») 304 является узлом, на котором базируются все другие узлы дерева. Дочерние узлы 305 и 306 расположены на дереве, произрастающем из корневого узла 304. Их взаимное расположение по отношению друг к другу определяет то, как они будут воспроизведены: поверх или под друг другом. Ось 307 в левой части фиг. 3В иллюстрирует «z-очередность» различных узлов в этом приводимом в качестве примера дереве.
Фиг. 4 демонстрирует пример того, как могут быть воспроизведены чернила в системе, имеющей z-упорядоченную (или упорядоченную по глубине) структуру упорядочения. Здесь окно 401 показано с контентом. Контент включает в себя содержательный элемент 402, который воспроизводится в позиции 403, и содержательный элемент 404, который воспроизводится в позиции 405. После того как были воспроизведены предыдущие содержательные элементы, чернила 406 могут быть воспроизведены в позиции 407 на самом верхнем содержательном элементе (здесь 404). Чернила 406 могут быть или не быть связаны с самым верхним содержательным элементом. Например, пользователь может работать с бланком 404, который принимает вносимую в форме чернил информацию в качестве содержательного элемента 406. Здесь бланк 404 может быть воспроизведен перед тем, как на него будут наложены чернила.
При альтернативном подходе чернила могут быть размещены под другими элементами. Например, могут быть воспроизведены чернила, а затем сверху воспроизведены элементы. Воспроизведение чернил может перемежаться с воспроизведением элементов.
Конструкторы, Свойства, Методы и События Объектов
Для того чтобы управлять порядком распределения контента по слоям, может быть использован объект, предназначенный для решения этой задачи. Для простоты в данном описании объект, который может решать эту задачу в отношении чернил, называется объектом «холст для чернил» (поскольку в функциональном плане он подобен тому, как художник накладывает слоями краску на физический холст). В одном примере холст для чернил может быть элементом. В другом примере холст для чернил может быть объектом (где все элементы являются объектами, но не все объекты являются элементами). Для простоты холст для чернил в данном описании называется объектом. Объект «холст для чернил» показан на фиг. 5-7 с различными конструкторами, свойствами, методами и событиями. Вполне очевидно, что различные конструкторы, свойства, методы и события показаны исключительно в иллюстративных целях. Некоторые, все или дополнительные конструкторы, свойства, методы и события могут присутствовать в различных формах в других примерах холста для чернил, и это не выходит за рамки объема изобретения. Объект «холст для чернил» может содержать ноль или более элементов или объектов. Объект «холст для чернил» может воспроизводить чернила для входящих в него элементов или объектов, или эти элементы или объекты могут воспроизводить чернилами сами.
Следующие фигуры и их описание иллюстрируют различные примеры методов, свойств, событий и конструкторов. Вполне очевидно, что в некоторых случаях различные компоненты могут быть скрыты от внешнего доступа и, тем не менее, доступны посредством другого механизма. Например, некий метод может использоваться для возвращения объекта «чернила», выбранных штрихов чернил, потока чернил или массива байтов. Этот метод может быть использован вместо доступа к свойству, которое может содержать эту информацию. Методы могут использоваться для доступа к свойствам или установки свойств, для отклика на события и вызова событий. Свойства могут описывать состояния методов и/или событий. События могут указывать, когда установлены свойства или когда выполнены методы. Другие примеры следуют из вышеописанных, но здесь не приводятся.
В объекте «холст для чернил» могут иметь или не иметь место различные аспекты. Во-первых, объект «холст для чернил» может содержать элементы и/или объекты. Элементы и объекты могут быть воспроизведены объектом «холст для чернил» или могут воспроизводить себя сами. Объект «холст для чернил» может содержаться в древовидной организационной структуре. Объект «холст для чернил» может быть создан на языке разметки (например, на языке гипертекстовой разметки HTML, расширенном языке разметки XML и/или расширяемом языке разметки приложений XAML и т.п.). Объект «холст для чернил» может включать в себя функциональные возможности по распознаванию (включая распознавание рукописного текста, распознавание формы, распознавание рисунков, распознавание комментариев и т.д.). Объект «холст для чернил» может включать в себя расширяемые функциональные возможности по редактированию. Наконец, объект «холст для чернил» может включать в себя многообразие интерфейсов прикладного программирования, которые позволяют разработчику создавать прикладные программы, взаимодействующие с объектом «холст для чернил». В объекте «холст для чернил» может присутствовать один или более из этих аспектов.
Фиг. 5 изображает конструкторы и свойства, связанные с объектом «холст для чернил». Объект «холст для чернил» показан под номером 501. Два конструктора показаны под номерами 502 и 503. Конструктор 502 является открытым конструктором с активированными возможностями ввода и воспроизведения по умолчанию. Конструктор 503 создает новый экземпляр объекта «холст для чернил» со связью с конкретным родителем.
Фиг. 5 также изображает свойства 504-518:
Свойство 504 «Режим Индивидуально Конфигурируемого Редактирования» позволяет устанавливать режим индивидуально конфигурируемого редактирования.
Свойство 505 «Атрибуты Изображения по Умолчанию» определяет атрибуты для новых введенных штрихов.
Свойство 506 «Режим Редактирования» устанавливает текущий режим редактирования.
Свойство 507 «Размер Стирающего Средства» устанавливает размер стирающего средства при активированном режиме стирания.
Свойство 528 «Форма Стирающего Средства» устанавливает форму (круг, овал, квадрат, прямоугольник и т.п.) стирающего средства при активированном режиме стирания.
Свойство 508 «Чернила» разрешает доступ к чернилам, содержащимся в объекте «холст для чернил».
Свойство 509 «Усечение Чернил» определяет, когда чернила будут усечены до размера отображаемой области холста для чернил.
Свойство 510 «Инвертированный Режим Редактирования» указывает на то, какой режим редактирования (или другой язык или состояние) будет активным, когда пишущее средство пользователя перевернуто. Следует иметь в виду, что могут быть использованы дополнительные пишущие средства. Соответственно, могут быть использованы и дополнительные свойства 510 для определения других режимов, которые будут связаны с другими концами пишущих средств.
Свойство 511 «Перо Перевернуто» показывает, перевернуто ли перо в настоящий момент времени.
Свойство 512 «Перемещение Разрешено» разрешает и запрещает перемещение созданных чернил.
Свойство 513 «Изменение Размеров Разрешено» разрешает и запрещает изменение размеров созданных чернил.
Свойство 514 «Поворот Разрешен» разрешает и запрещает поворот созданных чернил.
Свойство 515 «Доступ к Выделенным Элементам» разрешает доступ к только что выделенным элементам, являющимся потомками текущего холста 501 для чернил.
Свойство 516 «Доступ к Выделенным Штрихам» разрешает доступ к выделенным в настоящий момент штрихам, которые связаны с текущим холстом 501 для чернил.
Свойство 517 «Использование Индивидуально Конфигурируемого Курсора» показывает, что разработчик использует заказной курсор мыши и что текущий курсор должен быть сохранен.
Свойство 518 «Редактирование Пользователем» показывает, что холст 501 для чернил в данный момент осуществляет ввод чернил.
Свойство 527 «Выделенные группы» показывает, какие объекты штрихов или чернил объединены в группы для групповых или распознаваемых синтаксическим анализатором выделений и операций.
В дополнение к вышеперечисленным свойствам объект 501 «холст для чернил» может также включать или не включать в себя одно или более свойств распознавания чернил.
Свойство 519 «Распознанные Чернила» показывает, что чернила распознаны. Распознавание может быть или не быть связано с выбранным в настоящий момент или выбранным перед этим штрихом или штрихами.
Свойство 520 «Обнаруженное Слово» показывает, какой набор штрихов или объект чернил был опознан как слово.
Свойство 521 «Обнаруженное Изображение» показывает, какой набор штрихов или объект чернил был опознан как изображение.
Свойство 522 «Обнаруженная Строка» показывает, какой набор штрихов или объект чернил опознан как строка.
Свойство 523 «Обнаруженный Абзац» показывает, какой набор штрихов или объект чернил опознан как абзац.
Свойство 524 «Обнаруженная Форма» показывает, какой набор штрихов или объект чернил опознан как форма (и/или тип формы).
Свойство 525 «Обнаруженный Комментарий» показывает какой набор штрихов или объект чернил опознан как комментарий.
Свойство 526 «Преобразованный Текст» включает в себя текст, полученный в результате распознавания чернил. В качестве альтернативы он может указывать, что для воспроизведения одного или более штрихов чернил или объектов чернил, вместо визуальной формы чернил должен использоваться преобразованный текст.
Вполне очевидно, что вышеуказанные свойства приводятся исключительно в иллюстративных целях. В дополнение или вместо вышеуказанных свойств с объектом «холст для чернил» могут быть использованы и другие свойства.
Фиг. 6 изображает различные методы, связанные с объектом 601 «холст для чернил»:
Метод 602 «Получить Отмену Атрибутов Изображения По Умолчанию» получает для конкретного пера установочные параметры, отменяющие атрибуты по умолчанию. Например, пользователь может иметь одно перо для редактирования и одно для стирания. Этот метод позволяет пользователю управлять режимом по умолчанию для конкретного пера.
Метод 603 «При Измененном Инвертированном Режиме Редактирования» вызывает событие, состоящее в том, что инвертированный режим изменился.
Метод 604 «При Изменении Инвертированного Режима Редактирования» вызывает событие, состоящее в том, что Инвертированный Режим изменяется.
Метод 605 «При Изменении Перевернутого Положения Пера» вызывает событие, когда перо использовано для изменения инвертированного режима редактирования.
Метод 606 «При Измененном Режиме Индивидуально Конфигурируемого Редактирования» вызывает событие, указывающее, что режим индивидуально конфигурируемого редактирования изменился.
Метод 607 «При Изменении Режима Индивидуально Конфигурируемого Редактирования» вызывает событие, указывающее, что режим индивидуально конфигурируемого редактирования изменяется.
Метод 608 «При Измененном Режиме Редактирования» вызывает событие, указывающее, что режим редактирования изменился.
Метод 609 «При Изменении Режима Редактирования» вызывает событие, указывающее, что режим редактирования изменяется.
Метод 610 «При Входе в Украшающий Элемент Холста Для Чернил» вызывает событие, когда произошел вход в графический украшающий элемент для чернил (графическая метка-заполнитель, которая может быть или не быть показана, когда пользователь выделяет чернила).
Метод 611 «При Выходе Из Украшающего Элемента Холста Для Чернил» вызывает событие, когда произошел выход из графического украшающего элемента для чернил.
Метод 612 «При Стертых Чернилах» вызывает событие, когда чернила стерты.
Метод 613 «При Стирании Чернил» вызывает событие, когда чернила находятся в процессе стирания.
Метод 614 «При Введенном Штрихе» вызывает событие, когда штрихи введены.
Метод 615 «При Повороте Выделенного Фрагмента» вызывает событие, когда выделенный фрагмент находится в процессе поворота.
Метод 616 «При Повернутом Выделенном Фрагменте» вызывает событие, когда выделенный фрагмент повернут.
Метод 617 «При Изменении Размеров Выделенного Фрагмента» вызывает событие, когда выделенный фрагмент находится в процессе изменения размеров.
Метод 618 «При Измененных Размерах Выделенного Фрагмента» вызывает событие, когда размеры выделенного фрагмента изменены.
Метод 619 «При Перемещении Выделенного Фрагмента» вызывает событие, когда выделенный фрагмент находится в процессе перемещения.
Метод 620 «При Перемещенном Выделенном Фрагменте» вызывает событие, когда выбранный фрагмент перемещен.
Метод 621 «При Изменении Выделенного Фрагмента» вызывает событие, когда выделенный фрагмент находится в процессе изменения.
Метод 622 «При Измененном Выделенном Фрагменте» вызывает событие, когда выделенный фрагмент изменен.
Метод 623 «Установка Отмены Атрибутов Изображения По Умолчанию» отменяет атрибуты изображения по умолчанию, связанные с выделенными штрихами.
В дополнение к вышеназванным методам объект 601 «холст для чернил» может включать или не включать в себя также один или более методов распознавания чернил.
Метод 624 «При Распознавании Чернил» вызывает одно или более событий, когда чернила распознаны.
Вполне очевидно, что вышеуказанные методы приводятся исключительно в иллюстративных целях. В дополнение или вместо вышеуказанных методов с объектом «холст для чернил» могут быть использованы и другие методы.
Фиг. 7 изображает различные события, которые могут быть связаны с объектом 701 «холст для чернил»:
Событие 702 «Режим Индивидуально Конфигурируемого Редактирования Изменен» имеет место, когда режим индивидуально конфигурируемого редактирования изменился.
Событие 703 «Режим Индивидуально Конфигурируемого Редактирования Изменяется» имеет место, когда режим индивидуально конфигурируемого редактирования готов измениться.
Событие 704 «Режим Редактирования Изменен» имеет место, когда режим редактирования изменился.
Событие 705 «Режим Редактирования Изменяется» имеет место, когда режим редактирования готов измениться.
Событие 706 «Вход В Украшающий Элемент Холста Для Чернил» возникает, когда имел место вход в украшающий элемент холста для чернил.
Событие 707 «Выход из Украшающего Элемента Холста Для Чернил» возникает, когда имел место выход из украшающего элемента холста для чернил.
Событие 708 «Чернила Стерты» имеет место, когда чернила были стерты.
Событие 709 «Чернила Стираются» имеет место, когда чернила готовы быть стертыми.
Событие 710 «Инвертированный Режим Редактирования Изменен» имеет место, когда режим редактирования, связанный с перевернутым пишущим средством, изменен.
Событие 711 «Инвертированный Режим Редактирования Изменяется» имеет место, когда режим редактирования, связанный с перевернутым пишущим средством, готов измениться.
Событие 712 «Перевернутое Положение Пера Изменяется» имеет место, когда пользователь переворачивает перо.
Событие 713 «Перевернутое Положение Пера Изменено» имеет место, когда пользователь перевернул перо.
Событие 714 «Выделенный Фрагмент Изменен» имеет место, когда выделенный фрагмент изменился.
Событие 715 «Выделенный Фрагмент Изменяется» имеет место, когда выделенный фрагмент готов измениться.
Событие 716 «Выделенный Фрагмент Перемещен» имеет место, когда выделенный фрагмент переместился.
Событие 717 «Выделенный Фрагмент Перемещается» имеет место, когда выделенный фрагмент готов переместиться.
Событие 718 «Выделенный Фрагмент Изменил Размеры» имеет место, когда выделенный фрагмент изменил свои размеры.
Событие 719 «Выделенный Фрагмент Изменяет Размеры» имеет место, когда выделенный фрагмент готов изменить свои размеры.
Событие 720 «Выделенный Фрагмент Повернут» имеет место, когда выделенный фрагмент повернулся.
Событие 721 «Выделенный Фрагмент Поворачивается» имеет место, когда выделенный фрагмент готов повернуться.
Событие 722 «Штрих введен» имеет место, когда штрих был введен.
В дополнение к вышеперечисленным событиям объект 701 «холст для чернил» может также включать или не включать в себя события распознавания чернил.
Событие 723 «Чернила Распознаны» имеет место, когда чернила была распознаны.
Событие 724 «Обнаружено Слово» имеет место, когда было обнаружено слово.
Событие 725 «Обнаружено Изображение» имеет место, когда было обнаружено выполненное чернилами изображение.
Событие 726 «Обнаружена Строка» имеет место, когда была обнаружена написанная чернилами строка.
Событие 727 «Обнаружен Абзац» имеет место, когда был обнаружен написанный чернилами абзац.
Событие 728 «Обнаружена Форма» имеет место, когда была обнаружена выполненная чернилами форма.
Событие 729 «Обнаружен Комментарий» имеет место, когда был обнаружен выполненный чернилами комментарий.
Событие 730 «Чернила Преобразованы в Текст» имеет место, когда чернила были преобразованы в текст.
Вполне очевидно, что вышеуказанные свойства приводятся исключительно в иллюстративных целях. В дополнение или вместо указанных выше событий с объектом «холст для чернил» могут быть использованы и другие события.
Отношения
Фиг. 8 изображает различные иллюстративные отношения между объектом «холст для чернил», средством редактирования чернил и различными режимами. Объект чернильный холст 801 включает в себя один или более подэлементов 803. Объект 801 «холст для чернил» соединен со средством редактирования 802 чернил и обрабатывает входные события (изменение фокуса, ввод с клавиатуры, входные данные от пера и т.п.). Средство редактирования 802 чернил помимо прочего организует активацию режима 804 редактирования, состоящего из компонентов (включающего в себя, но не в ограничительном смысле, режимы, зависящие от чернил, и режимы, не зависящие от чернил). Режимы, зависящие от чернил, собраны в режим 805 редактирования чернил. Режим 805 редактирования чернил предоставляет базовые эвристические процедуры активации/деактивации (деактивация при подъеме пишущего средства, деактивация при изменении свойства режима редактирования в объекте «холст для чернил» и т.д.). Режимы 805 редактирования чернил включают в себя режимы 806 фиксации чернил, режимы 807 выделения (включая выделение методом оконтуривания) и дополнительные режимы 808. Не зависящие от чернил режимы включают в себя режим 809 резиновой нити, режим 810 перемещения, режим 811 изменения размеров и дополнительные режимы 812.
Средство редактирования 802 чернил управляет различными режимами 806-812, что показано стрелками, направленными от средства редактирования 802 чернил к каждому из режимов 806-812. Различные режимы 806-812 могут быть сгруппированы в соответствии с их относительной функцией. Например, создание или выделение подмножества контента в подэлементе 803 может быть осуществлено при помощи различных режимов выделения, включая режим 807 выделения методом оконтуривания и режим 809 выделения методом резиновой нити, но не ограничиваясь ими. Выделенный контент в подэлементе 803 может быть также модифицирован и/или подвергнут манипуляции посредством различных режимов, например режима 810 перемещения и режима 811 изменения размеров (среди прочих режимов).
Возвращаясь к объекту 801 «холст для чернил», следует отметить, что он может быть использован без каких-либо потомков, что позволяет иметь область, где пользователь может рисовать. К тому же, объект 801 «холст для чернил» может быть использован поверх любого элемента или объекта или элемента управления, поскольку объект 801 «холст для чернил» может быть включающим по отношению к любому другому типу элементов. Это позволяет разработчикам легко создавать комментарии к чему угодно и иметь любой фон для изображения чернил. Вполне очевидно, что в соответствии с аспектами данного изобретения чернила могут быть воспроизведены на различных уровнях (вперемежку с элементами, сверху или снизу элементов).
Пример программного кода для доступа к объекту «холст для чернил» может иметь следующий вид:
<InkCanvas>
<TextPanel FontSize="12" FontFamily="Arial">
Чернила в XAML будут выглядеть
<TextPanel FontWeight="Bold">really</TextPanel>
здорово!
</TextPanel>
</InkCanvas>
Поскольку Холст Для Чернил (Ink Canvas) может быть включающим по отношению к любому другому типу элементов, то от других типов панелей не требуется иметь способность изображать чернила. Ниже приводится другой пример фрагмента программного кода, который позволяет установить связь между чернильным холстом и текущей панелью (на которой будут отображаться чернила):
<InkCanvas>
<DockPanel Background="white">
<FlowPanel Background="#669999" Width="100" Height="75"
Dock="Right">
<Text>Right</Text>
</FlowPanel>
<FlowPanel Background="#669966" Width="100"
Height="75" Dock="Left">
<Text>Left</Text>
</FlowPanel>
</DockPanel>
</InkCanvas>
class System.Windows.Controls.InkCanvas: Canvas {
Ниже показан объект чернил (ink), связываемый с самим элементом. Он доступен как динамическое свойство или, для удобства, как.Net-свойство:
public static readonly DynamicProperty InkProperty =
PropertyManager.RegisterProperty ( "Ink",...);
public System.Windows.Ink.Ink Ink.
Ниже приводится пример программного кода на расширяемом языке разметки приложений XAML, содержащего объект чернил, использующий объект «холст для чернил»:
<InkCanvas
Ink="base64sdfsdfdsf..."
Factoid="Default"
TopRecognitionResult="To get her"
<!--подключение обработчика события,
связанного с жестом-->
Gesture="HandleGesture"
Stroke="HandleStroke".
<!--задание свойств чернил по умолчанию для режима
ввода-->
DefaultDrawingAttributes.FitToCurve=true>
<Image Left="200" Top="75" Source="image.png"
Alt="alternate text"/>
<def:Code>
<! [CDATA[
void OnStroke(Element sender, ClickEventArgs e)
{
// Некоторый код
}
void OnGesture(Element sender, ClickEventArgs e)
{
// Некоторый код
}
] ]>
</def:Code>
"To get her"
</InkCahvas>
Различные стороны объекта «холст для чернил» могут включать в себя одну или более из следующих характеристик:
Любой элемент может быть потомком холста для чернил в расширяемом языке разметки приложений XAML. Потомки могут иметь абсолютное позиционирование.
Любое динамическое событие может иметь код, присоединенный путем задания атрибута XML (расширяемый язык разметки).
Любое динамическое свойство может быть инициализировано путем задания атрибута XML.
Чернила, которые могут быть или не быть динамическим свойством, могут быть преобразованы в последовательную форму base64 ISF (формат для сохранения чернил) в атрибуте XML под именем «ink».
Усечение
Фиг. 9А, 9В и 9С демонстрируют визуальный атрибут объекта «холст для чернил». Чернила, отображаемые на чернильном холсте, могут быть или не быть усечены. В одном примере размеры объекта «холст для чернил» могут быть автоматически изменены для того, чтобы предотвратить усечение любого контента или только контента в виде чернил. В качестве альтернативы чернильный холст может быть настроен на размер и усечение контента или только контента в виде чернил. Усечение может быть определено свойством усечения или комбинацией свойств усечения (например, свойством усечения общего контента и специфическим свойством усечения для чернил). На фиг. 9А в области 902 показан полный контент чернильной надписи 901. На фиг. 9В показана вся чернильная надпись. Первая часть чернильной надписи показана в области 904. Оставшаяся часть 905 чернильной надписи попала за границу области 904. Здесь усечение чернил отсутствует. На фиг. 9С чернила 906 усечены до размеров области 907. Здесь усечение включено.
Аспекты настоящего изобретения были описаны в виде его иллюстративного варианта осуществления. Специалистам в данной области техники при просмотре этого описания придут на ум и многочисленные другие варианты осуществления, модификации и вариации в пределах объема и сущности, определяемых прилагаемой формулой изобретения.
Класс G06F17/00 Устройства или методы цифровых вычислений или обработки данных, специально предназначенные для специфических функций
Класс G06T11/80 создание или модифицирование вручную начерченного или нарисованного изображения с использованием входного устройства с ручным управлением, например мышь, световое перо, клавиши направления на клавиатуре