СПОСОБ, СИСТЕМА И СЧИТЫВАЕМАЯ КОМПЬЮТЕРОМ СРЕДА ДЛЯ СОЗДАНИЯ И КОМПОНОВКИ ГРАФИКИ В ПРИКЛАДНОЙ ПРОГРАММЕ
METHOD, SYSTEM AND COMPUTER READABLE MEDIUM FOR CREATING AND LINKING GRAPHS IN APPLICATION PROGRAM

Перекрестные ссылки на родственные заявки
Данная патентная заявка связана и подана одновременно с патентной заявкой США № _______ под названием "Editing The Text Of An Arbitrary Graphic Via A Hierarchical List" (Редактирование текста произвольной графики посредством иерархического списка), поданной 30 сентября 2004 г., права на которую переданы правопреемнику данной заявки. Вышеупомянутая патентная заявка включена в настоящее описание, во всей полноте, посредством ссылки.
Предпосылки изобретения
Современные прикладные программы, в том числе текстовые редакторы и специализированные прикладные программы рисования, позволяют пользователям создавать как простую, так и сложную графику. Эти программы рисования позволяют пользователям создавать графику с использованием разнообразных форм, которые можно аннотировать текстом. Графика, созданная с помощью этих приложений, может представлять собой самостоятельные документы или может быть внедрена в текстовые документы. Однако, несмотря на преимущества, обеспечиваемые современными программами рисования, эти программы страдают несколькими недостатками, которые препятствуют созданию и компоновке графики обычным пользователем.
Один недостаток современных программ рисования состоит в том, что, хотя они могут обеспечивать инструменты для создания графики, многие пользователи не осведомлены об этих существующих инструментах или не знают, как использовать их эффективно. В результате, пользователи либо создают свою собственную графику, либо используют графические инструменты неправильно, в результате чего появляются графические объекты с невыровненными формами и текст, который должен иметь одинаковый размер шрифта, но не имеет. Другой недостаток современных программ рисования состоит в том, что формы, содержащие текст, не осуществляют автоматическое изменение размера шрифтов или не увеличивают свои размеры при добавлении или увеличении текста, чтобы текст оставался полностью заключенным в форму. Еще один недостаток современных программ рисования состоит в том, что они либо предлагают жесткие компоновки, либо вовсе не предлагают никаких компоновок. Программы без компоновок требуют, чтобы пользователь вручную регулировал размер и положение каждой формы; программы с жесткой компоновкой не позволяют пользователям производить какие-либо изменения или настройки размера и положения формы.
Исходя из этих и других соображений, предложены различные варианты осуществления настоящего изобретения.
Сущность изобретения
Согласно настоящему изобретению вышеозначенные и другие проблемы решаются посредством способа, устройства и считываемой компьютером среды (носителя) для создания и компоновки графики в прикладной программе рисования на основании множества ограничений, которые преобразуют данные и отношения в конкретную компоновку графики. Способ включает в себя прием модели данных, задающей данные и отношения между этими данными, которые будут представлены в графике, прием определения графики, задающего создаваемую графику, генерирование дерева компоновки путем отображения данных из модели данных в информацию в определении графики, обнаружение размера и положения графических форм согласно значениям ограничения и правилам ограничения, заданным в определении графики, и создание списка форм для графики с использованием информации из дерева компоновки. Затем эти формы можно визуализовать посредством любого приложения визуализации для получения окончательной графики.
Для преобразования данных из модели данных в информацию в определении графики способ предусматривает итерацию по модели данных и применение критериев, заданных в определении графики, для задания алгоритмов, ограничений, правил ограничения и свойств формы для каждой формы, необходимой для построения графики. Эти множества данных затем добавляются к дереву компоновки, которое является иерархическим представлением графической структуры.
Для задания размера и положения графических форм способ предусматривает использование алгоритмов, ограничений и правил ограничения в определении графики. Алгоритмы происходят из неограниченного множества потенциальных алгоритмов, которые знают, как регулировать размер и положение форм для получения конкретной компоновки графики, например компоновки форм по окружности или компоновки форм по линии. Алгоритмы используют ограничения или начальные значения совместно с правилами ограничения или командами для изменения этих начальных значений в диапазоне, для задания размера и положения форм на основании количества форм, объема текста в каждой форме и размеров области, в которой должны быть скомпонованы формы.
Изобретение можно реализовать в виде компьютерного процесса, вычислительной системы или изделия производства, например компьютерного программного продукта или считываемых компьютером носителей. Компьютерный программный продукт может представлять собой компьютерный носитель данных, считываемый компьютерной системой и кодирующий компьютерную программу из команд для выполнения компьютерного процесса. Компьютерный программный продукт также может представлять собой сигнал, распространяющийся посредством несущего сигнала, считываемый вычислительной системой и кодирующий компьютерную программу из команд для выполнения компьютерного процесса.
Эти и другие признаки, а также преимущества настоящего изобретения явствуют из нижеследующего подробного описания и прилагаемых чертежей.
Краткое описание нескольких видов чертежей
Фиг.1 изображает архитектуру компьютерной системы, иллюстрирующую компьютерную систему, используемую в различных вариантах осуществления изобретения и обеспеченную ими;
Фиг.2 - блок-схема различных компонентов, используемых при создании и компоновке графики в прикладной программе рисования в компьютерной системе, показанной на фиг.1, согласно различным вариантам осуществления изобретения;
Фиг.3 - блок-схема иллюстративного дерева компоновки согласно различным вариантам осуществления изобретения;
Фиг.4 - блок-схема части иллюстративного определения графики для генерирования дерева компоновки согласно различным вариантам осуществления изобретения; и
Фиг.5 - иллюстративная процедура, осуществляемая прикладной программой рисования в компьютерной системе, показанной на фиг.1, для создания и компоновки графики, согласно варианту осуществления изобретения.
Подробное описание изобретения
Различные аспекты настоящего изобретения будут описаны со ссылками на чертежи, снабженные сходной системой обозначений. В частности, фиг.1 и соответствующее рассмотрение призвано обеспечить краткое общее описание подходящей вычислительной среды, в которой можно реализовать варианты осуществления изобретения. Хотя изобретение описано в общем контексте программных модулей, которые действуют над операционной системой на персональном компьютере, специалистам в данной области очевидно, что изобретение также можно реализовать в виде комбинации других типов компьютерных систем и программных модулей.
В общем случае программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Кроме того, специалистам в данной области очевидно, что изобретение можно применять на практике в других конфигурациях компьютерной системы, включая карманные устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронику, миникомпьютеры, универсальные компьютеры и пр. Изобретение также можно применять на практике в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, связанными друг с другом посредством сети передачи данных. В распределенной вычислительной среде программные модули размещаются как в локальных, так и на удаленных запоминающих устройствах.
Ниже описана, со ссылкой на фиг.1, иллюстративная компьютерная архитектура для компьютера 2, используемая в различных вариантах осуществления изобретения. Компьютерная архитектура, показанная на фиг.1, иллюстрирует традиционный настольный или переносной компьютер, включающий в себя центральный процессор 5 (ЦП), системную память 7, включающую в себя оперативную память 9 (ОЗУ) и постоянную память 11 (ПЗУ), и системную шину 12, которая подключает память к ЦП 5. Базовая система ввода/вывода, содержащая основные процедуры, которые помогают переносить информацию между элементами компьютера, например, при запуске, хранятся в ПЗУ 11. Компьютер 2 также включает в себя запоминающее устройство 14 большой емкости для хранения операционной системы 16, прикладных программ и других программных модулей, которые будут более подробно описаны ниже.
Запоминающее устройство 14 большой емкости подключено к ЦП 5 через контроллер запоминающего устройства большой емкости (не показан), подключенный к шине 12. Запоминающее устройство 14 большой емкости и связанные с ним считываемые компьютером среды обеспечивают энергонезависимую память для компьютера 2. Хотя содержащееся здесь описание считываемых компьютером сред относится к запоминающему устройству большой емкости, например жесткому диску или приводу CD-ROM, специалисту в данной области очевидно, что считываемые компьютером среды могут представлять собой любые имеющиеся среды, к которым компьютер 2 может осуществлять доступ.
В порядке примера, но не ограничения, считываемые компьютером среды могут содержать компьютерные носители данных и среды передачи данных. Компьютерные носители данных включают в себя энергозависимые и энергонезависимые, сменные и стационарные носители, реализованные с помощью любого метода или технологии для хранения информации, например считываемых компьютером команд, структур данных, программных модулей или других данных. Компьютерные носители данных включает в себя, но без ограничения, ОЗУ, ПЗУ, ЭСППЗУ, цифровые универсальные диски (DVD) или другие оптические диски, магнитные кассеты, магнитную ленту или другие магнитные запоминающие устройства или любой другой носитель, который можно использовать для хранения полезной информации, и к которому компьютер может осуществлять доступ.
Согласно различным вариантам осуществления изобретения компьютер 2 может работать в сетевой среде с использованием логических соединений с удаленными компьютерами по сети 18, например Интернету. Компьютер 2 может подключаться к сети 18 через сетевой интерфейс 20, подключенный к шине 12. Очевидно, что сетевой интерфейс 20 также можно использовать для подключения к сетям и удаленным компьютерным системам других типов. Компьютер 2 также может включать в себя контроллер 22 ввода/вывода для приема и обработки ввода от ряда других устройств, включая клавиатуру, мышь или электронное перо (не показаны на фиг.1). Аналогично контроллер 22 ввода/вывода может обеспечивать вывод на экран, принтер или устройство вывода другого типа.
Согласно кратко упомянутому выше в запоминающем устройстве 14 большой емкости и ОЗУ 9 компьютера 2 может храниться ряд программных модулей и файлов данных, в том числе операционная система 16, пригодная для управления работой сетевого персонального компьютера, например операционная система WINDOWS XP от MICROSOFT CORPORATION, Редмонд, Вашингтон. В запоминающем устройстве 14 большой емкости и ОЗУ 9 также могут храниться один или несколько программных модулей. В частности, в запоминающем устройстве 14 большой емкости и ОЗУ 9 может храниться прикладная программа рисования 10. Прикладная программа рисования 10 призвана обеспечивать функции создания и компоновку графики, например графики 24. Согласно одному варианту осуществления изобретения прикладная программа рисования 10 содержит комплект прикладных программ OFFICE от MICROSOFT CORPORATION, включая прикладные программы WORD, EXCEL и POWERPOINT. На фиг.2 показана блок-схема различных компонентов, используемых при создании и компоновке графики в прикладной программе рисования 10, согласно различным вариантам осуществления изобретения. Различные компоненты включают в себя модель 30 данных, определение 40 графики, дерево 50 компоновки, алгоритмы 60 и список 70 форм. В различных вариантах осуществления изобретения прикладная программа рисования 10 изучает посредством считывания определение 40 графики команды, относящиеся к созданию и компоновке графики. Очевидно, что в одном варианте осуществления изобретения модель 30 данных и файл 40 определения графики могут храниться в компьютерной системе 2 в виде отдельных файлов, к которым может осуществлять доступ прикладная программа рисования 10.
Модель 30 данных включает в себя коллекцию узлов, отношений, текста и свойств, которые содержат контент (содержимое) для построения графики 24. Определение 40 графики представляет собой коллекцию данных, описывающих как создавать конкретную компоновку графики. В различных вариантах осуществления изобретения определение 40 графики может иметь формат согласно расширяемому языку разметки (“XML”). Специалистам в данной области очевидно, что XML является стандартным форматом для передачи данных. В формате данных XML схема используется для снабжения данных XML множеством правил грамматики и типа данных, управляющих типами и структурой данных, которые можно передавать. Формат данных XML общеизвестен специалистам в данной области и потому не будет рассмотрен здесь в подробностях. Аспекты графики, описанные в определении 40 графики, включают в себя название алгоритма компоновки, подлежащего использованию для каждой вершины компоновки, параметры алгоритма, ограничения и правила ограничения для построения дерева компоновки, условия по умолчанию для геометрии формы и свойств стиля, данные классификации графики и модель данных образца.
Ограничения представляют собой условия, используемые алгоритмом компоновки при создании графики. Примером ограничения является значение, используемое для ширины формы. Очевидно, что ограничения могут включать в себя численные значения или булевы значения. Численные ограничения могут задавать конкретное численное значение (например, ширина = 1 дюйм (2,54 см)). Численные ограничения также могут вычислять свое значение, опираясь на другие значения ограничения с использованием ссылок (например, высота = ширина * 0.75). Булевы ограничения могут включать в себя ограничения равенства, которые предписывают всем вершинам в множестве иметь такое же значение для другого ограничения, и могут включать в себя ограничения неравенства, где одно значение ограничения ограничено на основании другого значения ограничения (например, ширина формы должна быть меньше или больше высоты другой формы). Ограничения можно распространять между узлами компоновки для установления равенства между элементами рисования (например, все нормальные узлы имеют одинаковый размер шрифта) или неравенства (например, ширина переходных узлов должна быть <= ширины нормального узла). Ограничения можно распространять, присоединяя к ограничению совместно используемый распространитель, который распространяет его состояния на другие узлы компоновки. Очевидно, что как ограничения, так и правила ограничения можно обновлять на других узлах на основании распространяющегося ограничения. Правила ограничения являются описанием, как модифицировать множество ограничений, если алгоритм компоновки не может удовлетворять им. Например, ограничение может указывать, что размер шрифта должен быть равен 14 пунктам, но правило ограничения может указывать, что размер шрифта может уменьшаться минимум до 8 пунктов. Теперь рассмотрим более подробно определение 40 графики со ссылкой на фиг.4.
Дерево 34 компоновки является коллекцией элементов представления или узлов компоновки. Узел компоновки это вершина в дереве компоновки, представляющая форму или группу форм, которая образует элемент графики 24. Узел компоновки, в необязательном порядке, может быть привязан к узлам модели 30 данных. В дереве 34 компоновки хранятся данные о формах, которые будут составлять графику, включая соответствующие геометрии, свойства, подгонку текста и размещение форм.
Прикладная программа рисования 10 строит дерево компоновки, преобразуя данные из модели данных в информацию компоновки графики в определении графики для построения узлов компоновки, и соответствующие алгоритмы, ограничения и правила ограничения с этими узлами компоновки. Затем она использует алгоритм, ограничения и правила ограничения для определения размеров формы, подгонки текста и размещения формы до построения списка 50 форм, который используется для визуализации графики 24 на холсте рисования. Узлы компоновки будут рассмотрены более подробно ниже со ссылкой на фиг.3.
На фиг.3 показана блок-схема одного примера дерева 34 компоновки согласно различным вариантам осуществления изобретения. Следует понимать, что дерево 34 компоновки, показанное на фиг.3, является иллюстративным, и что деревья компоновки могут быть больше или меньше в зависимости от объема данных для графики и от того, как определена компоновка графики. Дерево 34 компоновки включает в себя иерархическую структуру узлов (вершин) компоновки, подлежащих использованию для компоновки графики 24. В этом примере узлы компоновки представляют область всей страницы, которая содержит графику, узел 62 страницы. Дочерние узлы (или узлы второго уровня) узла 62 страницы включают в себя вершину (узел) 64 графики, узел 66 заголовка и узел 67 выноски. Дочерние узлы узла 64 графики включают в себя узел 68 первого уровня, узел 79 второго уровня и узел 72 третьего уровня, представляющие формы, образующие диаграмму, и отображаются обратно в элементы модели данных. Узел третьего уровня также имеет дочерние узлы 74 (точка А) и 76 (точка В), которые представляют видимые формы и также отображаются обратно в элементы модели данных.
На фиг.4 показана блок-схема части определения 40 графики согласно различным вариантам осуществления изобретения. Согласно фиг.4 эта реализация определения графики основана на схеме XML, которая задает компоновку графики 24. Схема XML включает в себя тег 47 LayoutNode, который имеет подтеги, включающие в себя тег Algorithm, задающий тип алгоритма, используемого для компоновки графики узлом компоновки (т.е. пирамида) и тег 48 Shapes, который задает формы, которые могут использоваться в графике узлом компоновки (т.е. трапеция), и тег 49 Constraints для задания ограничений.
Теперь, со ссылкой на фиг.5, опишем иллюстративную процедуру 500, иллюстрирующую процесс, осуществляемый прикладной программой рисования 10 для создания и компоновки графики. Из представленного здесь рассмотрения процедур явствует, что логические операции различных вариантов осуществления настоящего изобретения реализуются (1) как последовательность реализуемых компьютером действий или программных модулей, выполняющихся в вычислительной системе и/или (2) как взаимосвязанные схемы или схемные модули машинной логики в вычислительной системе. Реализация является вопросом выбора в зависимости от требований производительности вычислительной системы, реализующей изобретение. Соответственно логические операции, показанные на фиг.5 и составляющие варианты осуществления настоящего изобретения, описанного здесь, можно рассматривать как операции, структурные устройства, действия или модули. Специалистам в данной области очевидно, что эти операции, структурные устройства, действия или модули могут быть реализованы в виде программного обеспечения, программно-аппаратного обеспечения, цифровой логики специального назначения и любой их комбинации без отклонения от сущности и объема настоящего изобретения, заданных в нижеприведенной формуле изобретения.
Согласно фиг.5 процедура 500 начинается с операции 510, в которой прикладная программа рисования 10 принимает модель данных, задающую данные и отношения между данными, подлежащие представлению в создаваемой графике. Очевидно, что данные и отношения между данными определяют тип и количество для каждого узла компоновки в дереве 34 компоновки, генерируемом структурой компоновки, согласно шаблонам, заданным в определении графики.
Процедура 500 переходит от операции 510 к операции 520, в которой прикладная программа рисования 10 принимает определение графики, описывающее одну возможность для отображения (преобразования) данных из модели данных в узлы компоновки, задающие алгоритмы, параметры, ограничения, правила ограничения и свойства формы. Очевидно, что определение 40 графики может быть извлечено как отдельный файл, например файл XML, хранящийся в компьютерной системе 2. Таким образом, обеспечивается поддержка для разработки новых определений графики, которые пользователь может добавлять, чтобы прикладная программа рисования 10 могла их считывать. Новые определения графики можно создавать и извлекать, не изменяя структуру компоновки, что позволяет расширять множество графических объектов, которые приложение рисования может компоновать.
Определение графики обеспечивает шаблоны для применения алгоритмов, параметров, ограничений и правил ограничения. Согласно данному здесь определению алгоритмы - это процедуры компоновки для задания положения и размера форм и текста. Например, один алгоритм может компоновать формы по линии, а другой алгоритм может компоновать формы по кругу. Очевидно, что алгоритмы могут использовать параметры для определения различных возможностей размещения. Например, линейный алгоритм имеет параметры для направления и ориентации, которыми можно управлять посредством различных команд инструмента рисования в прикладной программе рисования 10. Например, в приложении 10 рисования можно обеспечить инструмент для изменения одного из параметров алгоритма компоновки для изменения ориентации графики (например, слева направо или справа налево) или поворота графики. Алгоритмы также могут быть внешними по отношению к структуре компоновки и могут добавляться для расширения диапазона графики, которую можно создавать, без изменений структуры компоновки.
Процедура 500 переходит от операции 520 к операции 530, в которой прикладная программа рисования 10 генерирует дерево компоновки из принятой модели данных и принятого определения графики. В частности, прикладная программа рисования 10 «обходит» узлы в модели 30 данных и отображает узлы и отношения из модели данных в конкретные формы и принятые по умолчанию свойства стиля (например, форматирование и свойства текста) согласно определению графики (которые также можно задать схемой XML). Согласно рассмотренному выше со ссылкой на фиг.2 дерево 34 компоновки включает в себя данные о формах, которые будут составлять графику, включая соответствующие геометрии, свойства, подгонку текста и размещение форм. Очевидно, что дерево компоновки создается путем итерации по модели 30 данных и создания узлов компоновки на основании шаблонов, заданных в определении графики. Итераторы обеспечивают команды для построения дерева компоновки путем указания, как элементы в модели данных считываются и согласовываются с шаблонами узлов компоновки.
Процедура 500 переходит от операции 530 к операции 540, в которой прикладная программа рисования 10 определяет размер и положение формы для узлов компоновки в дереве компоновки, с использованием алгоритмов, параметров, ограничений и правил ограничений из определения графики. Процедура 500 переходит от операции 540 к операции 550, в которой прикладная программа рисования 10 определяет, вписывается ли графика, подлежащая визуализации, в пространство компоновки на холсте рисования, на основании значений ограничения.
Если, в операции 550, графика, подлежащая визуализации, не вписывается в пространство компоновки на холсте рисования, то процедура 500 переходит к операции 560, в которой прикладная программа рисования 10 изменяет значения ограничения с использованием правил ограничения, чтобы вписать графику в пространство компоновки. В частности, узлы компоновки в дереве 34 компоновки могут включать в себя упорядоченное множество правил ограничения, которые прикладная программа рисования 10 может использовать для изменения значений ограничения в попытке успешной компоновки графики в пространстве компоновки. Согласно различным вариантам осуществления изобретения прикладная программа рисования 10 проверяет каждое правило по очереди, переходя к следующему правилу, только если текущее правило не позволяет вписать графику в пространство компоновки. Очевидно, что, когда прикладная программа 10 закончит движение по списку правил, она автоматически обращается к резервному списку правил, что принудительно вписывает элементы рисования в пространство компоновки на холсте рисования путем сжатия форм и размера шрифта до очень малого размера, усечения текста или не размещения форм в пространстве компоновки.
Следует понимать, что вышеупомянутые графические элементы включают в себя формы, а также текст, который вписывается в формы. Таким образом, прикладная программа рисования 10 также может определять в операции 550, если какой-либо текст не вписывается в формы в пространстве компоновки на холсте рисования. Очевидно, что правила ограничения для текста, а также другие правила также можно включать в список правил ограничения узлов компоновки для определения порядка применения различных методов для подгонки текста. Эти методы могут включать в себя увеличение размера формы или изменение ограничений подгонки текста (например, регулировку границ и размера шрифта). Текстовые алгоритмы связываются с узлами компоновки дерева компоновки, где данные существуют в модели данных. Другие правила включают в себя алгоритмы для определения величины пространства между двумя графическими элементами. Очевидно также, что другие правила могут использовать алгоритмы для определения величины пространства между двумя графическими элементами, относительного положения графических элементов и т.д.
Если в операции 550 графика, подлежащая визуализации, не вписывается в пространство компоновки на холсте рисования, то процедура 500 переходит к операции 570, в которой прикладная программа рисования 10 создает список форм для создаваемой графики на основании данных дерева компоновки, определенных в операции 540. После отображения узлов из модели 30 данных и отношений в конкретные формы или свойства формы, список форм можно визуализовать на холсте рисования. На этом процедура 500 заканчивается.
Из вышеописанного следует, что различные варианты осуществления изобретения включают в себя способ, устройство и считываемую компьютером среду для управления конкретными типами контента в электронном документе. Вышеприведенное описание, примеры и данные обеспечивают полное описание создания и использования состава изобретения. Поскольку многие варианты осуществления изобретения можно создавать, не выходя за рамки сущности и объема изобретения, изобретение опирается на прилагаемую ниже формулу изобретения.