ПРИВЯЗКА ОБЪЕКТОВ В СРЕДЕ КОМПЬЮТЕРНОЙ ГРАФИКИ
TYING OBJECTS IN COMPUTER GRAPHICS ENVIRONMENT

УРОВЕНЬ ТЕХНИКИ
Имеются различные компьютерные прикладные программы, которые позволяют пользователям создавать рисунки с использованием компьютера. Однако многие из этих прикладных программ сложны в использовании. Например, когда пользователь рисует или редактирует блок-схему или иерархическую схему, различные компоненты рисунка должны быть созданы, размещены относительно друг друга и соединены для обеспечения контекста и придания смысла. Процесс создания, размещения и соединения компонентов может потребовать множества выполняемых вручную шагов и может быть трудным, занимающим много времени и утомительным для пользователя.
Кроме того, при некоторых обстоятельствах пользователь должен делать выбор между различными типами соединений, что еще более усложняет процесс. Например, некоторые прикладные программы предоставляют как простые, так и динамические ("склеенные") соединения. Простое соединение помещает соединительную линию между двумя компонентами (например, в заданной точке в пространстве). Когда один из компонентов перемещается, соединительная линия остается зафиксированной в пространстве и больше не соединяет эти два компонента. Напротив, динамическое соединение помещает линию между двумя компонентами и автоматически корректирует соединительную линию так, чтобы два компонента оставались соединенными, когда один из компонентов перемещается. Если пользователь выбирает неправильный тип соединения для типа выполняемого рисунка, полученный в результате рисунок может стать еще более трудным для редактирования в будущем.
Различные средства использовались для упрощения процесса создания и размещения компонентов. Например, программа Visio, поставляемая корпорацией Microsoft из Редмонда, штат Вашингтон, предоставляет пользователю возможность вырезать, копировать или перемещать компоненты рисунка и/или возможность выбирать компоненты из главного контейнера фигур или окна. Кроме того, программа Visio предоставляет инструмент штамповки, который позволяет выбирать фигуру и затем помещать ее в различных местоположениях на рисунке посредством размещения указателя в желаемом местоположении и нажатия на кнопку мыши. Однако инструмент штамповки не предлагает размещение фигуры и не обеспечивает никакого соединения между фигурой, помещенной на рисунок, и другими ранее существующими фигурами. В соответствии с этим пользователь должен определить точное расположение компонента (например, точное направление и расстояние) и затем вручную соединить помещенную фигуру с ранее существующими фигурами, если это желательно.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Предоставлены способы и системы для обеспечения предложений или подсказок относительно привязки объектов (например, размещения и/или соединения объектов) в графической прикладной программе. Например, реализованный с помощью компьютера способ может включать в себя этап, на котором назначают целевой объект или фигуру на рисунке. Способ может дополнительно включать в себя этапы, на которых идентифицируют объект или фигуру для привязки к целевому объекту и обеспечивают предложенную привязку (например, размещение и/или соединение) объекта к целевому объекту. Кроме того, способ может дополнительно включать в себя этапы, на которых принимают команду для подтверждения предложенной привязки и привязывают объект к цели, как это было предложено. При некоторых обстоятельствах этот способ может дать возможность быстро и легко разместить один объект и соединить его с другим объектом посредством простого подтверждения предложения, предоставленного вычислительной средой, реализующей способ.
Это описание сущности изобретения дано для того, чтобы в упрощенной форме представить выбор концепций, которые далее описаны в подробном описании. Это описание сущности изобретения не предназначено для идентификации ключевых признаков или существенных признаков заявленного предмета, а также не предназначено для использования в качестве помощи в определении объема заявленного предмета.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фигура 1 - блок-схема, которая иллюстрирует вычислительную среду, подходящую для осуществления процесса привязки друг к другу двух объектов в графической прикладной программе в соответствии с вариантами воплощения изобретения.
Фигура 2 - блок-схема, которая иллюстрирует процесс привязки друг к другу двух объектов в графической прикладной программе в соответствии с различными вариантами воплощения изобретения.
Фигура 3 - частичная схематическая иллюстрация отображения, имеющего по меньшей мере одну предложенную привязку объекта и цели в соответствии с некоторыми вариантами воплощения изобретения.
Фигура 4 - частичная схематическая иллюстрация отображения, показанного на фигуре 3, в котором пользователь дает команду подтверждения одной из предложенных привязок.
Фигура 5 - частичная схематическая иллюстрация отображения, показанного на фигуре 4, в котором объект был привязан к цели, как это было предложено.
Фигура 6 - частичная схематическая иллюстрация отображения, в котором пользователь дает команду назначения нескольких объектов в соответствии с другими вариантами воплощения изобретения.
Фигура 7 - частичная схематическая иллюстрация отображения, показанного на фигуре 6, в котором пользователь дает команду подтверждения предложенной привязки цели к объектам.
Фигура 8 - частичная схематическая иллюстрация отображения, показанного на фигуре 7, в котором объекты были привязаны к цели, как это было предложено.
Фигура 9 - частичная схематическая иллюстрация отображения, имеющего по меньшей мере одну предложенную привязку первого объекта к цели в соответствии с другими вариантами воплощения изобретения.
Фигура 10 - частичная схематическая иллюстрация отображения, показанного на фигуре 9, в котором первый объект был привязан к цели и отображается по меньшей мере одна предложенная привязка второго объекта к цели.
Фигура 11 - частичная схематическая иллюстрация отображения, показанного на фигуре 10, в котором второй объект был привязан к цели, как это было предложено.
Фигура 12 - частичная схематическая иллюстрация отображения, имеющего по меньшей мере одну предложенную привязку объекта к цели в соответствии с другими вариантами воплощения изобретения.
Фигура 13 - частичная схематическая иллюстрация отображения, показанного на фигуре 12, в котором объект был привязан к цели, как это было предложено.
Фигура 14 - частичная схематическая иллюстрация отображения, имеющего по меньшей мере одну предложенную привязку цели к объекту в соответствии с другими вариантами воплощения изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
Предоставлены способы и системы для привязки друг к другу двух объектов в графической прикладной программе (в том числе в прикладной программе для создания диаграмм). Варианты воплощения изобретения направлены на способ в вычислительной среде, который содержит этапы, на которых принимают команду для назначения цели и назначают цель. Способ может дополнительно содержать этапы, на которых идентифицируют объект и обеспечивают предложенную привязку объекта к цели. Способ может также дополнительно содержать этапы, на которых принимают команду для подтверждения предложенной привязки и привязывают объект к цели, как это было предложено.
Другие варианты воплощения изобретения направлены на способ в вычислительной среде для привязки друг к другу двух объектов в графической прикладной программе, причем способ содержит этапы, на которых принимают команду для назначения целевого объекта и назначают целевой объект. Способ может дополнительно содержать этап, на котором отображают визуальный индикатор, идентифицирующий направление относительно целевого объекта и идентифицирующий объект. Способ может также дополнительно содержать этапы, на которых принимают команду для подтверждения направления, идентифицированного визуальным индикатором, и размещают объект относительно целевого объекта в направлении, идентифицированном визуальным индикатором. Способ может также дополнительно содержать этап, на котором соединяют целевой объект и объект с помощью соединительного объекта. Способ может также дополнительно содержать этап, на котором удаляют визуальный индикатор.
Кроме того, другие варианты воплощения изобретения направлены на машиночитаемый носитель, содержащий команды для управления вычислительной средой (оборудованием), чтобы выполнить способ, который содержит этапы, на которых принимают команду для назначения цели и назначают цель. Способ может дополнительно содержать этапы, на которых идентифицируют объект и обеспечивают предложенную привязку объекта к цели. Способ может также дополнительно содержать этапы, на которых принимают команду для подтверждения предложенной привязки и привязывают объект к цели, как это было предложено.
Фигура 1 является блок-схемой, которая иллюстрирует вычислительную среду (оборудование), подходящую для осуществления процесса привязки друг к другу двух объектов в графической прикладной программе в соответствии с вариантами воплощения изобретения. Вычислительная среда 100 может включать в себя вычислительную или компьютерную систему 102, которая может быть функционально соединена с дисплеем 104 и с одним или более устройствами ввода данных, например с клавиатурой 106a и с указательным устройством 106b (например, с мышью). Кроме того, компьютерная система 102 может взаимодействовать с одним или более запоминающими устройствами (например, накопителем 108 на жестком диске с одной или более базами данных) и с одним или более устройствами 110 для чтения машиночитаемых носителей других типов (например, с устройствами для чтения дисков 111). Компьютерная система 102 может также взаимодействовать через сеть 112 (например, Интернет) с другими устройствами или системами. Например, в проиллюстрированном варианте воплощения компьютерная система 102 может взаимодействовать с другой компьютерной системой 114 и/или другой базой 116 данных через сеть 112. В других вариантах воплощения вычислительная среда может быть скомпонована по-другому, в том числе она может иметь больше или меньше компонентов и/или другие компоненты.
Например, вычислительное устройство или среда, в которой осуществлена система, может включать в себя центральный процессор, память, устройства ввода данных (например, клавиатуру и указательные устройства), устройства вывода (например, устройства отображения) и запоминающие устройства (например, накопители на дисках). Память и запоминающие устройства являются машиночитаемыми носителями, которые могут содержать команды, реализующие систему. Кроме того, структуры данных и структуры сообщений могут храниться или передаваться через носитель данных, такой как сигнал в линии связи. Могут использоваться различные линии связи, такие как Интернет, локальная сеть, глобальная сеть, двухточечное соединение по телефонной линии, сеть из сотовых телефонов и т.д.
Варианты воплощения системы могут быть реализованы в различном оборудовании, которое включает в себя персональные компьютеры, серверные компьютеры, карманные или переносные устройства, многопроцессорные системы, системы на основе микропроцессора, программируемую бытовую электронику, цифровые камеры, сетевые персональные компьютеры, миникомпьютеры, универсальные вычислительные системы, распределенные вычислительные среды, которые включают в себя любые из перечисленных выше систем или устройств, и т.д. Компьютерные системы могут являться сотовыми телефонами, карманными компьютерами, интеллектуальными телефонами, персональными компьютерами, программируемой бытовой электроникой, цифровыми камерами и т.д.
Система может быть описана в общем контексте исполняемых компьютером команд, таких как программные модули, исполняемые одним или более компьютерами или другими устройствами. В общем случае программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют отдельные задачи или реализуют отдельные абстрактные типы данных. Как правило, функциональные возможности программных модулей могут быть по желанию объединены или распределены в различных вариантах воплощения.
Фигура 2 является блок-схемой, которая иллюстрирует процесс 200 привязки друг к другу двух объектов в графической прикладной программе в соответствии с различными вариантами воплощения изобретения. Процесс может быть выполнен в вычислительной среде и может включать в себя этапы, на которых принимают команду для назначения цели (этап 202) и назначают цель (этап 204). Способ может дополнительно содержать этап, на котором идентифицируют объект (этап 206). В некоторых вариантах воплощения идентификация объекта может включать в себя этапы, на которых принимают команду (например, от пользователя) для назначения объекта из числа одного и большего количества объектов в области рисунка и/или области, отдельной от области рисунка, и назначают объект в соответствии с командой. В других вариантах воплощения идентификация объекта может включать в себя этапы, на которых предлагают назначение объекта, принимают команду для подтверждения предложенного назначения объекта и назначают объект.
Способ может также дополнительно включать в себя этапы, на которых обеспечивают одну или более предложенных привязок объекта к цели (этап 208), принимают команду для подтверждения одной из предложенных привязок (этап 210) и привязывают объект к цели, как было предложено посредством подтвержденной предложенной привязки (этап 212). Способ может также дополнительно включать в себя этап, на котором удаляют одну или более предложенных привязок (этап 214). В избранных вариантах воплощения этот процесс может предоставить пользователю быстрый и эффективный процесс для создания, размещения и/или соединения двух объектов на рисунке посредством подтверждения предложений, сформированных вычислительной средой. Эта функциональная возможность может быть особенно полезной в графических прикладных программах, которые используют фигуры и/или символы с обозначением отношений (например, блок-схемы последовательности операций процесса, диаграммы логических схем, чертежи физических сетей, организационные схемы, другие иерархические диаграммы и т.п.). Фигуры 3-14 иллюстрируют избранные варианты воплощения изобретения.
Фигура 3 является частичной схематической иллюстрацией отображения 304, имеющего по меньшей мере одну предложенную привязку 340 объекта 330 и целевого объекта или цели 320 в соответствии с некоторыми вариантами воплощения изобретения. На фигуре 3 один из объектов 365 в окне или области 360 был идентифицирован как подлежащий связыванию объект 330, как обозначено пунктирной рамкой. Например, вычислительная среда может принять команду от пользователя для назначения объекта 330 из числа объектов 365 в области 360 и может назначить объект 330 в соответствии с командой, таким образом идентифицируя объект 330. В проиллюстрированном варианте воплощения пользователь назначил объект 330 посредством размещения курсора 350 вблизи выбранного или желаемого объекта 365 с использованием мыши и нажатия кнопки мыши для назначения выбранного объекта 365 в качестве подлежащего связыванию объекта 330. В других вариантах воплощения могут использоваться другие способы назначения объекта 330, например посредством перемещения по списку с помощью клавиатуры и использования клавиши ENTER для назначения объекта 330. Идентификация объекта 330 также может быть обозначена другими способами. Например, в других вариантах воплощения назначение объекта может быть обозначено изменением цвета, затенением, негативным отображением, подсветкой и т.п.
В проиллюстрированном варианте воплощения область 360 является отдельной от области 305 рисунка, где выполняется целевой рисунок (например, рисунок, который имеет или будет иметь назначенную цель 320), и включает в себя окно или "контейнер" со списком объектов 365. Когда подлежащий связыванию объект 330 идентифицирован в списке объектов 365, как дополнительно подробно рассмотрено ниже, соответствующий объект 365 может быть в результате создан, повторно создан, скопирован, перемещен или помещен в область 305 рисунка, с тем чтобы он мог быть привязан к цели 320. В других вариантах воплощения список объектов 365 может быть представлен другим образом, например, для идентификации одного или большего количества объектов 365 может использоваться список слов. Кроме того, в других вариантах воплощения область 360 может включать в себя другой рисунок или документ (например, связанный или не связанный с текущей графической прикладной программой), и объект 365 может быть идентифицирован как подлежащий связыванию объект 330 аналогичным образом, как описано выше в отношении "контейнера" объектов. В других вариантах воплощения объект 365 в области 305 рисунка может быть идентифицирован как подлежащий связыванию объект 330 с использованием аналогичного процесса.
В проиллюстрированном варианте воплощения пользователь дал команду для назначения цели 320 посредством проверки местоположения курсора для выбранного объекта или размещения курсора 350 вблизи (например, рядом или сверху) выбранного объекта в области рисунка. Вычислительная среда приняла команду, назначила выбранный объект в качестве цели и предоставила по меньшей мере одну предложенную привязку 340 объекта 330 к цели 320. На фигуре 3 имеется четыре предложенных привязки 340, показанные как первая предложенная привязка 340a, вторая привязка 340b, третья привязка 340c и четвертая привязка 340d.
В проиллюстрированном варианте воплощения предложенные привязки 340 показываются или отображаются как визуальные индикаторы, идентифицирующие направление относительно цели 320. В некоторых вариантах воплощения предложенные привязки 340 или визуальные индикаторы могут указывать предложенное направление для размещения объекта 330 относительно цели 320 и/или проведения соединительной линии (например, для соединения объекта 330 с целью 320) от цели. Кроме того, на фигуре 3 предложенные привязки 340 показываются пунктиром или с ослаблением, показывая, что пользователь не выбрал или не подтвердил ни одну из предложенных привязок 340. В других вариантах воплощения способ может обеспечить больше или меньше предложенных привязок 340 или их другие виды. В некоторых вариантах воплощения предложенные привязки 340 не предоставляются для всех объектов на рисунке (например, когда проверено местоположение курсора для некоторых объектов, не предоставляются никакие предложенные привязки 340). Например, в избранных вариантах воплощения предложенные привязки 340 не отображаются для соединительных линий, и соединительные линии не могут быть назначены в качестве целей 320.
На фигуре 4 пользователь поместил курсор 350 вблизи от первой предложенной привязки 340a. Первая предложенная привязка 340 больше не отображается пунктиром, показывая, что пользователь выбрал первую предложенную привязку 340a, однако в проиллюстрированном варианте воплощения пользователь не подтвердил предложение. Символ 352 соединительной линии вблизи от курсора 350 указывает, что пользователь может подтвердить выбранную предложенную привязку 340 посредством ввода соответствующей команды, например посредством нажатия кнопки мыши, пока курсор 350 находится вблизи от первой предложенной привязки 340a (например, используя схему типа "укажи и выбери").
В проиллюстрированном варианте воплощения пользователь может проигнорировать или не подтвердить предложенную привязку (привязки) 340, не вводя команду для подтверждения предложенной привязки 340. Затем пользователь может отодвинуть курсор 350 от выбранного объекта, использовать другой инструмент в графической прикладной программе и т.п. В других вариантах воплощения могут использоваться другие обозначения для показа того, что пользователь может подтвердить выбранное предложение. Например, в избранных вариантах воплощения нет символа 352 соединительной линии, и показ предложенной привязки без пунктира указывает, что пользователь может подтвердить предложение. В других вариантах воплощения могут использоваться другие индикаторы (например, курсор 350 может изменить форму или цвет, когда пользователь может выбрать предложение). Кроме того, в других вариантах воплощения не используются никакие обозначения.
На фигуре 5 пользователь подтвердил первую предложенную привязку 340, и после получения команды вычислительная среда привязала объект 330 к цели 320, как это было предложено посредством первой предложенной привязки 340a. Например, в некоторых вариантах воплощения привязка объекта 330 к цели 320 может включать в себя размещение объекта 330 относительно цели 320 в выбранном направлении и/или соединение цели 320 с объектом 330 с помощью соединительного объекта или соединителя 370 (например, линии, направленной линии, пунктирной линии, прямоугольного объекта и т.п.). В других вариантах воплощения объект 330 и цель 320 могут быть соединены посредством соединителя, который простирается от цели в направлении, которое было обозначено первой предложенной привязкой 340a. Кроме того, в других вариантах воплощения объект 330 может быть привязан к цели 320 другими способами и/или в других целях. Например, в избранных вариантах воплощения вокруг объекта 330 и цели 320 может быть размещен круг или сфера, чтобы показать, что они являются частью выбранного группирования элементов.
Кроме того, на фигуре 5 предложенные привязки 340 были удалены (например, чтобы устранить перегруженность рисунка). Кроме того, как показано на фигуре 5, в некоторых вариантах воплощения может использоваться анимация, например, для предоставления пользователю дополнительной обратной связи. На фигуре 5 анимация была использована для показа копии объекта 330, движущейся от окна 360 к своей позиции на рисунке (как обозначено пунктирными символами). Анимация может показать изменение размеров объекта 330 по мере его движения от окна 360 до своей позиции на рисунке и затем может исчезнуть. В других вариантах воплощения анимация может принять другие формы. Например, в некоторых вариантах воплощения анимация может просто показывать серию точек, движущихся от позиции объекта 330 в окне 360 к позиции объекта 330 на рисунке.
Фигура 6 является частичной схематической иллюстрацией отображения 604, в котором пользователь дает команду для назначения нескольких объектов 630 в соответствии с другими вариантами воплощения изобретения. На фигуре 6 пользователь назначил объект 665 в области 660 в качестве подлежащего связыванию объекта 630. Пользователь выбрал переключатель 662 множественного выбора и ввел число 2 в поле 663 данных, чтобы указать, что идентифицируются несколько подлежащих связыванию объектов 630 (например, два). В проиллюстрированном варианте воплощения пользователь дал команду для назначения соответствующего объекта 665, поместив курсор 650 вблизи от объекта и удерживая в нажатом состоянии кнопку мыши. Затем пользователь может переместить или "перетащить" объекты 630 к объекту 665 в области 605 рисунка (например, удерживая в нажатом состоянии кнопку мыши и перемещая курсор 350).
На фигуре 7 курсор 650 был размещен вблизи от выбранного объекта 665 в области рисунка, тем самым выбранный объект 665 был назначен в качестве цели 620. В соответствии с этим вычислительная среда обеспечила (например, отобразила) четыре предложенные привязки 640, показанные как первая предложенная привязка 640a, вторая предложенная привязка 640b, третья предложенная привязка 640c и четвертая предложенная привязка 640d. Пользователь выбрал первую предложенную привязку 640a, поместив курсор 650 вблизи от первой предложенной привязки 640a. Поскольку пользователь "перетащил" объекты 630 к цели 620, объекты 630 также находятся вблизи от первой предложенной привязки 640a. В проиллюстрированном варианте воплощения маленькая надпись "+2" отображается вблизи от объектов 630, указывая, что пользователь назначил два объекта. В других вариантах воплощения могут использоваться другие способы для показа нескольких объектов (например, для показа нескольких объектов могут использоваться несколько символов и/или накладывающиеся фигуры).
В проиллюстрированном варианте воплощения вычислительная среда также отображает предварительный вид привязки между целью 620 и объектом (объектами) 630. На фигуре 7 предварительный вид показан пунктирными линиями. Поскольку другой объект 665 соединен с целью 620 с помощью первой соединительной линии 670a, простирающейся от цели 620 в том же самом направлении, как и первая предложенная привязка 640a, предварительный вид показывает объекты 630, расположенные в направлении, обозначенном первой предложенной привязкой 640a, но второй соединитель 670b первоначально простирается от цели 620 в направлении второй предложенной привязки 640b. В других вариантах воплощения вычислительная среда может разрешать конфликт размещения объекта (объектов) 630 другими способами и/или с использованием других приоритетов. Например, в других вариантах воплощения несколько соединителей могут быть присоединены к одной стороне цели 620.
В проиллюстрированном варианте воплощения пользователь дает команду для подтверждения первой предложенной привязки 640a, отпуская кнопку мыши (которая удерживалась в нажатом состоянии для того, чтобы перетащить объекты 630 к цели 620), пока курсор 650 находится вблизи от первой предложенной привязки 640a (например, с использованием схемы типа "перетащи и отпусти"). Как только первая предложенная привязка 640a была подтверждена, вычислительная среда может привязать объект 630 к цели 620, как обозначено первой предложенной привязкой 640a. На фигуре 8 объект 630 был привязан к цели 620, и вторая соединительная линия 670b соединяет первый объект 630a с целью, и третья соединительная линия 670c соединяет второй объект 630b с целью 620 через первый объект 630a и вторую соединительную линию 670b. В других вариантах воплощения несколько объектов 630 могут быть соединены с целью 620 другими способами. Например, в некоторых вариантах воплощения каждый из нескольких объектов 630 может быть соединен непосредственно с целью 620 (например, каждый с помощью отдельной соединительной линии 670) без каких-либо промежуточных объектов 630.
В других вариантах воплощения несколько объектов могут быть идентифицированы другими способами и/или из других областей. Например, в других вариантах воплощения объекты могут быть идентифицированы с использованием клавиатуры (например, с использованием клавиш TAB и ENTER). Кроме того, в других вариантах воплощения несколько объектов 630 могут быть идентифицированы с использованием схемы "укажи и выбери". Например, пользователь может использовать мышь для указания каждого из нескольких объектов 665 и нажать кнопку мыши, удерживая в это время нажатой клавишу SHIFT, чтобы идентифицировать несколько подлежащих связыванию объектов 630. Схема "укажи и выбери", обсуждаемая выше в отношении фигур 3-5, может затем быть использована для подтверждения предложенной привязки 640, тем самым привязывая несколько объектов к цели. Кроме того, в других вариантах воплощения по меньшей мере некоторые из объектов 630 могут быть выбраны из области 605 рисунка.
Фигура 9 является частичной схематической иллюстрацией отображения 904, имеющего по меньшей мере одну предложенную привязку 940 первого объекта 930a к цели 920 в соответствии с другими вариантами воплощения изобретения. На фигуре 9 первый объект 930a был идентифицирован из числа объектов 965 в области 960, как обозначено пунктирными линиями вокруг назначенного объекта 965. В других вариантах воплощения объект(ы) 930 могут быть выбраны из области 905 рисунка отображения 904. В проиллюстрированном варианте воплощения пользователь поместил курсор 950 вблизи от объекта в области 905 рисунка, назначая соответствующий объект в качестве цели 920. В ответ на это вычислительная среда обеспечила предложенную привязку 940 между первым объектом 930a и целью 920.
В проиллюстрированном варианте воплощения предложенная привязка 940 включает в себя круг, окруженный четырьмя стрелками, указывая, что объект(ы) 930 будут привязаны к цели 920 в последовательности, определенной вычислительной средой. Например, в одном варианте воплощения первый объект будет соединен справа, второй объект будет соединен слева и т.д. В других вариантах воплощения могут использоваться другие отображения и/или логическая схема. Например, в других вариантах воплощения в одно время отображается только одна стрелка, и эта стрелка указывает заданное направление, в котором будет помещен следующий привязанный объект 930. Кроме того, логическая схема может обеспечить, чтобы объект(ы) 930 были привязаны к цели 920 в другой последовательности (например, первый объект 930 может быть помещен снизу от цели 920, а не справа).
На фигуре 10 пользователь дал команду для подтверждения предложенной привязки 940 (например, нажимая кнопку мыши), и первый объект 930 был соединен с правой стороной цели 920 с помощью первой соединительной линии 970a. Был выбран второй объект 930b. Курсор 950 был помещен вблизи от объекта и назначил тем самым объект в качестве цели 920, и вычислительная среда обеспечила предложенную привязку второго объекта 930b с целью 920. На фигуре 11 предложенная привязка 940 была подтверждена, и второй объект 930b был соединен со второй стороной цели 920 с помощью второй соединительной линии 970b.
Фигура 12 является частичной схематической иллюстрацией отображения 1204, имеющего по меньшей мере одну предложенную привязку 1240 объекта 1230 к цели 1220 в соответствии с другими вариантами воплощения изобретения. На фигуре 12 курсор 1250 был помещен вблизи от первого объекта в области 905 рисунка, и сделана проверка местоположения курсора для первого объекта. В проиллюстрированном варианте воплощения, когда проверяется местоположение курсора для объекта, вычислительная среда производит в пределах выбранной области (обозначенной пунктирным прямоугольником) поиск ближайшего второго объекта. Если объект не найден, то первый объект не назначается в качестве цели и предложенные привязки не предоставляются. Если найден один или большее количество вторых объектов, вычислительная среда назначает первый объект в качестве цели 1220, обеспечивает предложенное назначение объекта (например, предложение назначить ближайший второй объект в качестве объекта 1230) и обеспечивает предложенную привязку 1240 предложенного объекта к цели 1220. На фигуре 12 пунктирный круг указывает предложенное назначение объекта. В других вариантах воплощения размер и форма области поиска могут быть другими. Например, в некоторых вариантах воплощения область поиска может быть в два или три раза больше ширины/высоты объекта, для которого проверяется местоположение курсора. В других вариантах воплощения область поиска может представлять собой все отображение или весь документ.
На фигуре 13 пользователь дал команду для подтверждения предложенного назначения объекта, и вычислительная среда назначила соответствующий объект в качестве подлежащего связыванию объекта 1230, таким образом идентифицируя объект 1230. Кроме того, пользователь дал команду для подтверждения предложенной привязки 1240, и объект 1230 был соединен с целью 1220 с помощью соединительной линии 1270. В некоторых вариантах воплощения подтверждение предложенного назначения объекта и предложенной привязки может быть выполнено с помощью одного пользовательского ввода. Например, в одном варианте воплощения предложенное назначение объекта и предложенная привязка могут быть подтверждены вместе посредством одного нажатия кнопки мыши. В других вариантах воплощения могут использоваться отдельные команды для подтверждения предложенного назначения объекта и предложенной привязки. Кроме того, в других вариантах воплощения может отображаться несколько предложенных привязок, и одна из нескольких предложенных привязок может быть выбрана после того, как был идентифицирован объект, подлежащий связыванию.
Кроме того, на фигуре 13 после того, как объект 1230 был привязан к цели 1220, пользователь использовал курсор 1250, чтобы "перетащить" объект 1230 на новое местоположение в области 1205 рисунка (показано пунктирными линиями на фигуре 13). В проиллюстрированном варианте воплощения соединение 1270 является динамическим или "склеенным" соединением. В соответствии с этим, когда объект 1230 и/или цель 1220 перемещаются (например, относительно друг друга), цель 1220 и объект 1230 остаются соединенными (например, через модификацию соединительной линии 1270). В других вариантах воплощения соединения, выполненные через подтверждение предложенной привязки, не являются динамическими соединениями. Кроме того, в других вариантах воплощения пользователь может выбирать, производить ли динамическое соединение в ответ на подтверждение предложенной привязки.
Хотя фигуры 3-12 проиллюстрировали двухмерные отображения, аспекты изобретения равным образом применимы к трехмерным отображениям. Например, фигура 14 является частичной схематической иллюстрацией трехмерного отображения 1404, имеющего по меньшей мере одну предложенную привязку 1440 цели 1420 к объекту 1430 в соответствии с другими вариантами воплощения изобретения. На фигуре 14 пользователь идентифицировал объект в области 1460 в качестве подлежащего связыванию объекта 1430. Используя курсор 1450, пользователь переместил объект 1430 (например, копию объекта, выбранного в области 1460) в позицию вблизи от выбранного объекта в области 1405 рисунка. Близость курсора 1450 к выбранному объекту в области 1405 рисунка произвела команду для назначения выбранного объекта в качестве цели 1420. В соответствии с этим вычислительная среда обеспечила несколько предложенных привязок 1440 между целью 1420 и объектом 1430 в трех измерениях.
В других вариантах воплощения способ в вычислительной среде для привязки друг к другу двух объектов в графической прикладной программе может включать в себя больше или меньше признаков и/или другие признаки. Например, в некоторых вариантах воплощения различные признаки могут быть выбраны или не выбраны на основе пользовательских предпочтений или на основе типа рисунка или документа, который выбран (например, на основе выбора шаблона). В других вариантах воплощения, когда появляются визуальные индикаторы, их размер, форма и местоположение относительно определяемой цели могут изменяться или быть изменены на основе близости смежных объектов в области рисунка.
Из предшествующего описания ясно, что конкретные варианты воплощения изобретения были описаны здесь в целях иллюстрации, но могут быть сделаны различные модификации без отступления от изобретения. Кроме того, аспекты изобретения, описанные в контексте отдельных вариантов воплощения, могут быть объединены или устранены в других вариантах воплощения. Например, хотя преимущества, связанные с некоторыми вариантами воплощения изобретения, были описаны в контексте этих вариантов воплощения, другие варианты воплощения также могут показать такие преимущества. Кроме того, не все варианты воплощения обязательно должны показывать такие преимущества, чтобы находиться в пределах объема изобретения. В соответствии с этим изобретение ограничено только приложенной формулой изобретения.