Автоматическое расположение элементов вдоль вложенного пути одномерного многообразия
Иллюстрации
Показать всеИзобретение относится к размещению элементов в графических приложениях в n-мерном пространстве вдоль пути одномерного многообразия, вложенного в контейнер. Техническим результатом является обеспечение более гибкой ориентации расположения визуальных элементов не только в двумерном, но и в n-мерном пространстве графического приложения. Технический результат достигается благодаря тому, что компьютерная система для позиционирования объектов в многомерном контейнере графического приложения, содержит реализуемый процессором модуль позиционирования, который принимает параметры, связанные с размещением набора объектов вдоль криволинейного одномерного многообразия, вложенного, по меньшей мере частично, в упомянутый контейнер, и вычисляет координаты позиционирования каждого объекта в этом наборе объектов вдоль данного криволинейного одномерного многообразия на основе, по меньшей мере частично, протяженности этого объекта и дополнительного пространства, окружающего данный объект, причем это пространство определяется упомянутой протяженностью и/или протяженностью объекта, соседнего с упомянутым объектом в упомянутом наборе объектов, при этом данный набор объектов размещается вдоль упомянутого криволинейного одномерного многообразия таким образом, что каждый объект воспроизводится в модуле дисплея так, что центральная линия этого каждого объекта ориентирована по касательной к данному криволинейному одномерному многообразию. 2 н. и 14 з.п. ф-лы, 18 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Изобретение имеет отношение к графическим приложениям и, в особенности, к расположению элементов в двумерном пространстве, трехмерном пространстве и n-мерном пространстве вдоль пути одномерного многообразия, вложенного в контейнер.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
В графических приложениях пользователю необходимо иметь возможность видеть и располагать визуальные элементы детерминированным образом, очень часто как упорядоченный список элементов. В некоторых графических приложениях двумерные элементы автоматически располагаются на основе политики расположения. Обычно элементы размещаются последовательно в двумерном (обычно прямоугольном) контейнере по шаблону слева направо, справа налево, сверху вниз или снизу направо. Типичные принципы расположения включают в себя потоковое расположение, в котором объекты (обычно прямоугольные) размещаются в прямоугольном окне слева направо, стыкуемые панели, в которых объекты располагаются вертикально, и сеточное расположение, в котором объекты располагаются табличным образом, причем «сетка» состоит из ячеек, которые расположены по строкам и столбцам.
При помещении объектов в трех- и более-мерные контейнеры имеется меньше предубеждений о том, как объекты «должны быть» расположены, а также имеется меньше ограничений. В области техники есть потребность в технологии, которая обеспечит более гибкий способ расположения визуальных элементов не только в двумерном пространстве, но также в трех- и более-мерном пространстве.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Предоставлен механизм для расположения элементов в дву-, трех- и n-мерном пространстве вдоль вложенного одномерного многообразия или пути. Одномерное многообразие может быть непрерывным, разрывным, содержаться полностью в контейнере или простираться за пределы контейнера. Одномерное многообразие может быть определено множеством параметров, определяющих функцию, формулу или множество точек. Контейнер может быть двумерным, трехмерным или n-мерным контейнером.
Такой механизм может применяться графическим приложением и может определять местоположение или позиционирование объекта или элемента. Объект или элемент может быть одним из множества объектов или элементов. В ответ на получение множества параметров, определяющих одномерное многообразие, одномерное многообразие может быть вложено в контейнер. В ответ на получение множества параметров, описывающих аспекты объекта или элемента, который должен быть помещен в контейнер, может быть сформировано множество координат x и y, или x, y и z и т.д., которое может быть отправлено на стандартный графический интерфейс для отображения.
ПЕРЕЧЕНЬ ФИГУР ЧЕРТЕЖЕЙ
Предшествующее краткое изложение сущности изобретения, а также последующее подробное описание иллюстративных вариантов воплощения, более понятны при прочтении в привязке к приложенным чертежам. С целью иллюстрирования изобретения на чертежах показаны иллюстративные конструкции изобретения; однако, изобретение не ограничено раскрытыми конкретными методами и средствами. На чертежах:
фиг.1 - блок-схема, показывающая иллюстративную компьютерную среду, в которой аспекты изобретения могут быть реализованы;
фиг.2 - блок-схема иллюстративной системы для позиционирования объекта или элемента вдоль одномерного многообразия, вложенного в контейнер, в соответствии с одним вариантом воплощения изобретения;
фиг.3a-3d - иллюстративные одномерные многообразия в двумерных контейнерах в соответствии с вариантами воплощения изобретения;
фиг.4a - иллюстративное одномерное многообразие в трехмерном контейнере в соответствии с вариантом воплощения изобретения;
фиг.4b-4c - иллюстративные ориентации объекта в двумерных контейнерах в соответствии с вариантами воплощения изобретения;
фиг.4d-4f - иллюстративные ориентации объекта в трехмерных контейнерах в соответствии с вариантами воплощения изобретения;
фиг.4g - иллюстративное одномерное многообразие, которое простирается за пределы двумерного контейнера, в соответствии с одним вариантом воплощения изобретения; и
фиг.4h - иллюстративное одномерное многообразие, которое простирается за пределы трехмерного контейнера, в соответствии с одним вариантом воплощения изобретения;
фиг.5a-5c - иллюстративный механизм прокрутки в соответствии с некоторыми вариантами воплощения изобретения; и
фиг.6 - способ формирования координат положения в соответствии с одним вариантом воплощения изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЛЛЮСТРАТИВНЫХ ВАРИАНТОВ ВОПЛОЩЕНИЯ
ОБЗОР
Самый простой способ расположить элементы внутри контейнера или на холсте состоит в том, чтобы определить позицию и ориентацию каждого элемента. Однако такая фиксированная схема расположения не очень полезна, когда происходят изменения. Например, чтобы вставить новый элемент на существующий холст, используя такую схему, программист должен определить расположение нового элемента. Если в желаемом местоположении недостаточно «визуального пространства» для этого элемента, программист должен передвинуть исходные элементы, чтобы создать место для нового элемента.
Подобным образом, если форма или размер холста изменяется, все элементы, возможно, больше не смогут быть отображены. Если все элементы должны продолжать оставаться видимыми, должен быть предусмотрен код, который реорганизует расположение элементов. Если контейнер не имеет достаточно места, чтобы отобразить все элементы, расположение может показать только некоторые из элементов. Полоса прокрутки может позволить пользователю выбрать, какие из элементов видимы.
Введение третьего (или более) измерения изменяет то, каким образом элементы размещаются внутри контейнера.
ИЛЛЮСТРАТИВНАЯ КОМПЬЮТЕРНАЯ СРЕДА
Фиг.1 и дальнейшее обсуждение предназначены для того, чтобы дать краткое общее описание подходящей компьютерной среды, в которой изобретение может быть реализовано. Следует понимать, однако, что карманные, переносные и другие компьютерные устройства всех видов рассматриваются для использования в связи с данным изобретением. Хотя ниже описан компьютер общего назначения, это является всего лишь примером, и данное изобретение требует только тонкого клиента, имеющего возможность сетевого взаимодействия с сервером. Таким образом, данное изобретение может быть реализовано в среде сетевых услуг, в которой подразумеваются очень малые или минимальные ресурсы клиента, например, в сетевой среде, в которой клиентское устройство служит только как средство просмотра (броузер) или интерфейс к всемирной «паутине».
Хотя это не требуется, изобретение может быть реализовано через интерфейс прикладного программирования для использования разработчиком и/или включено в сетевое программное обеспечение просмотра, которое будет описано в общем контексте машиноисполняемых команд, таких как программные модули, выполняемых одним или более компьютерами, такими как клиентские рабочие станции, серверы или другие устройства. В целом программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные задачи или реализуют определенные абстрактные типы данных. Обычно функциональные возможности программных модулей могут быть объединены или распределены по желанию в различных вариантах воплощения. Кроме того, специалистам в данной области техники должно быть понятно, что изобретение может применяться на практике с другими конфигурациями компьютерных систем. Другие широко известные компьютерные системы, среды и/или конфигурации, которые могут быть пригодны для использования изобретением, включают в себя, но без ограничения, персональные компьютеры (ПК), банкоматы, серверные компьютеры, карманные или переносные устройства, мультипроцессорные системы, системы на основе микропроцессора, программируемую бытовую электронику, сетевые ПК, миникомпьютеры, универсальные вычислительные машины и т.п. Изобретение также может быть применено на практике в распределенных компьютерных средах, в которых задания выполняются удаленными устройствами обработки данных, которые связаны через коммуникационную сеть или другое средство передачи данных. В распределенной компьютерной среде программные модули могут быть расположены и в местных, и в удаленных компьютерных носителях данных, включая устройства хранения памяти.
Фиг.1, таким образом, иллюстрирует пример подходящей среды 100 компьютерной системы, в которой изобретение может быть реализовано, хотя, как было пояснено выше, среда 100 компьютерной системы является только одним примером подходящей компьютерной среды и не предназначена для того, чтобы предложить какое-либо ограничение относительно сферы использования или функциональных возможностей изобретения. Также компьютерная среда 100 не должна интерпретироваться как имеющая какие-либо зависимости или требования по отношению к какому-либо одному или комбинации компонентов, проиллюстрированных в иллюстративной операционной среде 100.
В соответствии с фиг.1, иллюстративная система для реализации изобретения включает в себя вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, но без ограничения, процессор 120, системную память 130 и системную шину 121, которая соединяет различные компоненты системы, в том числе системную память, с процессором 120. Системная шина 121 может быть любой из нескольких типов шин или шинных структур, в том числе шиной памяти или контроллером памяти, шиной периферии и локальной шиной, использующей любую из множества архитектур шин. В качестве примера, но не ограничения, такие архитектуры включают в себя шину архитектуры промышленного стандарта (ISA), шину микроканальной архитектуры (MCA), шину усовершенствованной ISA (EISA), локальную шину ассоциации по стандартам в области видеоэлектроники (VESA) и шину межсоединения периферийных компонентов (PCI) (также известную как шина расширения).
Компьютер 110 обычно включает в себя множество машиночитаемых носителей. Машиночитаемые носители могут являться любыми доступными носителями, к которым компьютер 110 может осуществить доступ, и включают в себя и энергозависимые, и энергонезависимые носители, сменные и несменные носители. В качестве примера, но не ограничения, машиночитаемые носители могут содержать компьютерные носители данных и коммуникационные среды. Компьютерные носители данных включают в себя и энергозависимые и энергонезависимые, сменные и несменные носители, реализованные любым способом или по любой технологии для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Компьютерные носители данных включают в себя, но без ограничения, ОЗУ, ПУ, ЭСППЗУ, флэш-память или память другой технологии, CD-ROM, цифровые универсальные диски (DVD) или другую оптическую память на диске, магнитные кассеты, магнитную ленту, магнитную память на диске или другие магнитные запоминающие устройства, или любой другой носитель, который можно использовать для хранения полезной информации и к которой может осуществлять доступ компьютер 110. Коммуникационные среды обычно воплощают машиночитаемые команды, структуры данных, программные модули или другие данные в модулированном информационном сигнале, таком как несущая или другой транспортный механизм, и включают в себя любые среды доставки информации. Термин «модулированный информационный сигнал» означает сигнал, одна или более характеристик которого установлены или изменены таким образом, чтобы закодировать информацию в этом сигнале. В качестве примера, но не ограничения, коммуникационные среды включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустические, радиочастотные, инфракрасные и другие беспроводные среды. Комбинации любых вышеупомянутых сред и носителей должны также быть включены в рамки понятия «машиночитаемый носитель».
Системная память 130 включает в себя компьютерные носители данных в виде энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ПЗУ) 131 и оперативное запоминающее устройство (ОЗУ) 132. Базовая система 133 ввода-вывода (BIOS), содержащая основные процедуры, которые помогают передавать информацию между элементами в компьютере 110, например, во время запуска, обычно хранится в ПЗУ 131. ОЗУ 132 обычно содержит данные и/или программные модули, которые мгновенно доступны и/или которые в данный момент обрабатываются процессором 120. В качестве примера, но не ограничения, фиг.1 иллюстрирует операционную систему 134, прикладные программы 135, другие программные модули 136 и данные 137 программ.
Компьютер 110 может также включать в себя другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители данных. Только в качестве примера, фиг.1 иллюстрирует накопитель 141 на жестких дисках 141, который считывает или записывает на несменный энергонезависимый магнитный носитель, магнитный дисковод 151, который считывает или записывает на сменный энергонезависимый магнитный диск 152, и оптический дисковод 155, который считывает или записывает на сменный энергонезависимый оптический диск 156, такой как компакт-диск или другой оптический носитель. Другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители данных, которые могут использоваться в иллюстративной среде, включают в себя, но без ограничения, кассеты магнитной ленты, карты флэш-памяти, цифровые универсальные диски, цифровую видеоленту, полупроводниковое ОЗУ, полупроводниковое ПЗУ, и т.п. Накопитель 141 на жестких дисках обычно соединяется с системной шиной 121 через интерфейс несменной памяти, такой как интерфейс 140, и магнитный дисковод 151 и оптический дисковод 155 обычно соединяются с системной шиной 121 интерфейсом сменной памяти, таким как интерфейс 150.
Дисководы и накопители и связанные с ними компьютерные носители данных, обсуждаемые выше и проиллюстрированные на фиг.1, обеспечивают хранение машиночитаемых команд, структур данных, программных модулей и других данных для компьютера 110. На фиг.1, например, накопитель 141 на жестких дисках проиллюстрирован как содержащий операционную систему 144, прикладные программы 145, другие программные модули 146 и данные 147 программ. Заметьте, что эти компоненты могут либо быть теми же самыми, либо отличными от операционной системы 134, прикладных программ 135, других программных модулей 136 и данных 137 программ. Операционной системе 144, прикладным программам 145, другим программным модулям 146 и данным 147 программ здесь даны другие номера, чтобы проиллюстрировать, что, как минимум, они являются другими копиями. Пользователь может вводить команды и информацию в компьютер 110 через устройства ввода данных, такие как клавиатура 162 и координатно-указательное устройство 161, обычно называемое мышью, шаровым манипулятором или сенсорной клавиатурой. Другие устройства ввода данных (не показанные) могут включать в себя микрофон, джойстик, игровую клавиатуру, спутниковую антенну, сканер и т.п. Эти и другие устройства ввода данных часто соединяются с процессором 120 через интерфейс 160 пользовательского ввода, который присоединен к системной шине 121, но может быть соединен другими интерфейсными и шинными структурами, такими как параллельный порт, игровой порт или универсальная последовательная шина (USB).
Монитор 191 или другой тип устройства отображения также соединен с системной шиной 121 через интерфейс, такой как видеоинтерфейс 190. Графический интерфейс 182, такой как северный мост, может также быть соединен с системной шиной 121. Северный мост - это набор микросхем, которые взаимодействуют с центральным процессором или ведущим процессором 120 и берут на себя ответственность за взаимодействие по ускоренному графическому порту (AGP). Одно или более графических процессорных устройств (ГПУ) 184 может взаимодействовать с графическим интерфейсом 182. В этом отношении, ГПУ 184 обычно включают в себя встроенное устройство памяти, такое как регистровая память, и ГПУ 184 взаимодействуют с видеопамятью 186. ГПУ 184, однако, всего лишь один пример сопроцессора, и, таким образом, множество устройств совместной обработки может быть включено в компьютер 110. Монитор 191 или другой тип устройства отображения также соединен с системной шиной 121 через интерфейс, такой как видеоинтерфейс 190, который может, в свою очередь, взаимодействовать с видеопамятью 186. В дополнение к монитору 191 компьютеры могут также включать в себя другие внешние устройства вывода, такие как динамики 197 и принтер 196, которые могут быть соединены через интерфейс 195 периферийных устройств вывода.
Компьютер 110 может работать в сетевом окружении, используя логические соединения с одним или более удаленными компьютерами, такими как удаленный компьютер 180. Удаленный компьютер 180 может быть персональным компьютером, сервером, маршрутизатором, сетевым ПК, одноранговым устройством или другим общим сетевым узлом, и обычно включает в себя многие или все элементы, описанные выше относительно компьютера 110, хотя только запоминающее устройство 181 проиллюстрировано на фиг.1. Логические соединения, изображенные на фиг.1, включают в себя локальную сеть 171 и глобальную сеть 173, но могут также включать в себя другие сети. Такие сетевые среды являются обычным явлением в офисах, компьютерных сетях масштаба предприятия, интрасетях и Интернете.
При использовании в среде локальной сети компьютер 110 связан с локальной сетью 171 через сетевой интерфейс или адаптер 170. При использовании в среде глобальной сети компьютер 110 обычно включает в себя модем 172 или другие средства для установления взаимодействия по глобальной сети 173, такой как Интернет. Модем 172, который может быть внутренним или внешним, может быть соединен с системной шиной 121 через интерфейс 160 пользовательского ввода или другой соответствующий механизм. В сетевом окружении программные модули, изображенные относительно компьютера 110, или их части, могут храниться в удаленном запоминающем устройстве. В качестве примера, но не ограничения, фиг.1 иллюстрирует удаленные прикладные программы 185 как находящиеся в запоминающем устройстве 181. Будет оценено, что показанные сетевые соединения являются иллюстративными, и могут быть использованы другие средства установления линии связи между компьютерами.
Специалист в данной области техники может понять, что компьютер 110 или другое клиентское устройство может быть использовано как часть компьютерной сети. В этом смысле, данное изобретение имеет отношение к любой компьютерной системе, имеющей любое число блоков памяти и любое число приложений и процессов, совершающихся в любом числе модулей или томов памяти. Данное изобретение может применяться к среде с серверными компьютерами и клиентскими компьютерами, используемыми в сетевой среде, имеющей удаленную или локальную память. Данное изобретение может также применяться к автономному вычислительному устройству, имеющему функциональные возможности языка программирования, возможности интерпретации и выполнения.
АВТОМАТИЧЕСКОЕ РАСПОЛОЖЕНИЕ ЭЛЕМЕНТОВ С ИСПОЛЬЗОВАНИЕМ ПУТИ ОДНОМЕРНОГО МНОГООБРАЗИЯ
На Фиг.2 показана иллюстративная система для автоматического расположения элементов в двумерном, трехмерном или n-мерном пространстве в соответствии с некоторыми вариантами воплощения изобретения. Такая система может находиться полностью или частично на одном или более компьютерах, таких как иллюстративный компьютер 202 по фиг.2. Компьютер 202 может содержать компьютер, такой как компьютер 110, описанный относительно фиг.1. Система для автоматического расположения элементов в двумерном, трехмерном или n-мерном пространстве может содержать графическое приложение 204, включающее в себя один или более из следующих элементов: приложение 206 графического позиционирования, параметры, описывающие одномерное многообразие 208, параметры 210 позиционирования и ориентации объекта или элемента, координаты 212 позиционирования и стандартный модуль 214 отображения.
При помещении элементов внутри двумерного, трехмерного или n-мерного контейнера, в некоторых вариантах воплощения изобретения, используется принцип первый-объект-первый/последний-объект-последний. В соответствии с некоторыми вариантами воплощения изобретения согласно принципу первый-объект-первый/последний-объект-последний можно разместить объекты вдоль любого пути (например, вдоль любого пути или линии в одномерном многообразии или по одномерному пути или линии), вложенного в пространство, следовательно, задание такого пути делает возможным общий способ отображения объектов в пространство с использованием принципа первый-объект-первый/последний-объект-последний. Одномерное многообразие или путь может быть открытым (то есть может начинаться и заканчиваться в разных точках в пространстве) или замкнутым (начинаться и заканчиваться в одной и той же точке в пространстве), непрерывным или разрывным, криволинейным, прямым или сегментированным (кусочно-гладким). Одномерное многообразие может быть полиномиальным или неполиномиальным и может быть любой длины. Одномерное многообразие может простираться за пределы контейнера, в который оно вложено, или может быть заключено в пределах контейнера. Фиг.3а-3d иллюстрируют четыре таких пути (пути 302, 304, 306 и 308 соответственно из бесконечно большого количества возможных путей внутри двумерного пространства (310, 312, 314 и 318 соответственно).
Будет оценено, что также возможно бесконечно большое количество возможных замкнутых и открытых путей в пределах трехмерного пространства. Фиг.4а иллюстрирует одно такое возможное замкнутое круговое одномерное многообразие 402, вложенное в трехмерное пространство 404 с элементами 406, 408, и т.д., однородно распределенными по одномерному многообразию 402. В некоторых вариантах воплощения изобретения одномерное многообразие (например, 302, 304, 306, 308, 402 и т.д.) может быть определено как множество точек, соединенных прямыми линиями, или как базисные точки для некоторой функции интерполяции более высокого порядка или функции определения кривой. Элементы могут быть размещены вдоль по одномерному многообразию однородно, случайно, согласно некоторой функции или уравнению, или на основании протяженности элемента (и любого дополнительного пространства, которое должно окружать этот элемент), чтобы распределить пространство вдоль одномерного многообразия, или любой другой функцией, алгоритмом или схемой. Например, алгоритм расположения может размещать элементы, используя ширину каждого элемента плюс минимальное количество окружающего пространства, определенного либо как фиксированное значение, либо как процентное отношение, либо как некоторая фиксированная функция от протяженности элемента и/или протяженности соседнего элемента.
Масштаб или ориентация элемента(ов) могут также быть определены. Например, элемент может быть перпендикулярным одномерному многообразию, наклоненным, повернутым, ориентированным так, чтобы верхняя часть элемента была параллельна верхней части контейнера (см. фиг.4b, элементы 410, 412, и т.д.). В качестве альтернативы, центральная линия элемента может быть ориентирована по касательной к пути (см. фиг.4c, центральная линия 414 элемента 416 вдоль пути 418), или в соответствии с любой функцией, алгоритмом или схемой.
В трехмерном пространстве элементы могут быть положены в плоскости с верхним краем элемента, ориентированным налево, как проиллюстрировано на фиг.4d. Подобным образом, элементы могут быть ориентированы перпендикулярно к одномерному многообразию с верхним краем вверх, как проиллюстрировано на фиг.4e, или элементы могут быть ориентированы к зрителю с верхним краем элемента вверх, как проиллюстрировано в фиг.4f.
Таким образом, в некоторых вариантах воплощения изобретения, ориентация элемента может быть определена относительно некоторой точки, оси или плоскости, или может быть ориентирована как некоторая функция самого элемента, его соседей и/или окрестностей элемента. Примеры такого определения ориентации элемента могут включать в себя элементы, обращенные к зрителю, обращенные к точке в трехмерном пространстве, по касательной (или по нормали) к пути и так далее. Элемент может также быть ориентирован согласно различным правилам, которые могут содержать в себе параметры кроме тех, которые определены самим одномерным многообразием. Например, элементы на многообразии могут проявлять инерционные характеристики, которые зависят от скорости движения: элементы могут быть промоделированы как объекты с массой, которые "висят" на многообразии как на направляющем рельсе; тогда в зависимости от скорости движения элемента они могут ориентироваться дальше от центра искривления. Другие возможности включают в себя принудительную ортогональность оси элемента с касательной одномерного многообразия, в то время как объект остается «обращенным» к конкретной точке в пространстве.
Определяя одномерное многообразие таким образом, что части одномерного многообразия выходят за пределы видимой части его контейнера, элементы на части многообразия вне этого контейнера не будут видимы, как проиллюстрировано на фиг.4g. (Элементы 420, 422, 424 и 426 видимы, в то время как элементы 428, 430 и 432 вдоль одномерного многообразия 434 не видимы, потому что они выходят за пределы контейнера 436.) Подобное одномерное многообразие, простирающееся вне контейнера, проиллюстрировано на фиг.4h.
В некоторых вариантах воплощения изобретения отображается только подмножество элементов. Это может быть необходимо, когда имеется больше элементов, чем может быть по желанию отображено в доступном пространстве. В некоторых вариантах воплощения изобретения, отображаемое подмножество элементов является представительным в отношении полного набора элементов. Первый элемент в подмножестве может быть определен как первый элемент на одномерном многообразии.
В некоторых вариантах воплощения изобретения все элементы в множестве могут быть видимыми посредством прокрутки вдоль по одномерному многообразию. В некоторых вариантах воплощения изобретения позиция вдоль одномерного многообразия отображается на позицию вдоль линейной полосы прокрутки. Следовательно, прокрутка по одномерному многообразию преобразуется в движение по спрямленному пути (см. фиг.5a, 5b и 5c). В некоторых вариантах воплощения изобретения расстояние вдоль одномерного многообразия отображено в соответствующее расстояние по спрямленному пути (см. фиг. 5a и 5b). В качестве альтернативы, позиция точки вдоль оси (такой как, но без ограничения, оси X) может быть отображена на спрямленный путь (см. фиг. 5a и 5c). Другие отображения могут использовать абсциссу точки как значение вдоль спрямленного пути или обеспечивать некоторое другое взаимно-однозначное отображение . Любая точка на двухмерном дисплее может быть отображена в единственную точку на одномерном многообразии таким способом, что для любой заданной точки (x, y), отображенной на точку s на многообразии (где s изображена из непрерывной параметризации многообразия) существуют конечные ненулевые значения ε и δ, такие что, если (x', y') находится в пределах расстояния ε от (x, y), отображенная точка s' соответствующая (x', y') обязательно является такой, что |s'-s | < δ. Однако легко может быть доказано, что многие одномерные многообразия допускают особенности, при которых это условие нарушено. В таких случаях имеется множество приспособлений, которые могут облегчить отображение, которое может использоваться. В качестве не ограничивающего примера некоторые перечислены здесь. В одном варианте воплощения особенности целиком игнорируются, и курсору (или другому индикатору) позволено перепрыгивать через точки разрыва. В одном варианте воплощения реализуется "пружина" между курсором в предыдущей точке s на многообразии и текущей s' таким образом, что пружина плавно перемещает курсор между s и s', даже когда между ними имеется прерывистый переход. В другом варианте воплощения курсор застревает в точке s.
Иллюстративный способ размещения объекта в контейнере вдоль вложенного одномерного многообразия проиллюстрирован на фиг.6. На этапе 602 параметры, связанные с одномерным многообразием или определяющие одномерное многообразие, могут быть приняты. Одномерное многообразие или путь может быть открытым (то есть могут начинаться и заканчиваться в разных точках в пространстве), или закрытым (начинаться и заканчиваться в одной и той же точке в пространстве), непрерывным или разрывным, криволинейным, прямым или сегментированным (кусочно-линейным). Одномерное многообразие может быть полиномиальным или неполиномиальным и может быть любой длины. Одномерное многообразие может простираться за пределы контейнера, в который оно вложено, или может быть заключено в пределах содержащего его контейнера.
На этапе 604 принимают параметры, ассоциированные с объектом, подлежащим помещению вдоль вложенного одномерного многообразия. Параметры, ассоциированные с масштабом или ориентацией элемента(ов) могут быть определены. Например, элемент может быть перпендикулярным одномерному многообразию, наклоненным, повернутым, ориентированным так, чтобы верхняя часть элемента была параллельна верхней части контейнера. В качестве альтернативы, центральная линия элемента может быть ориентирована по касательной к пути или в соответствии с любой функцией, алгоритмом или схемой.
В трехмерном пространстве элементы могут быть положены в плоскости с верхним краем элемента, ориентированным налево, ориентированным перпендикулярно к одномерному многообразию с верхним краем вверх, или могут быть ориентированы к зрителю с верхним краем элемента вверх и в любой другой обозначенной ориентации.
Таким образом, в некоторых вариантах воплощения изобретения, ориентация элемента может быть определена относительно некоторой точки, оси или плоскости, или может быть ориентирована как некоторая функция самого элемента, его соседей и/или окрестностей элемента. Примеры такого определения ориентации элемента могут включать в себя элементы, обращенные к зрителю, обращенные к точке в трехмерном пространстве, по касательной (или по нормали) к пути и так далее.
Определяя одномерное многообразие таким образом, что части одномерного многообразия выходят за пределы видимой части его контейнера, элементы на части многообразия вне этого контейнера не будут видимы. В некоторых вариантах воплощения изобретения отображается только подмножество элементов. Это может быть необходимо, когда имеется больше элементов, чем может быть по желанию отображено в доступном пространстве. В некоторых вариантах воплощения изобретения отображаемое подмножество элементов является представительным в отношении полного набора элементов. Первый элемент в подмножестве может быть определен как первый элемент на одномерном многообразии.
На этапе 606 вычисляют размещение объекта или объектов. В некоторых вариантах воплощения изобретения вычисляют координаты x и y (для двумерного контейнера) или координаты x, y и z (для трехмерного контейнера). На этапе 608 координаты (и возможно объект(ы)) передают стандартному модулю дисплея для отображения.
Описанные здесь различные методики могут быть реализованы в связи с аппаратными средствами или программным обеспечением или, где целесообразно, с их комбинацией. Таким образом, способы и устройство данного изобретения или его определенные аспекты или части могут принять форму программного кода (то есть команд), воплощенного на материальных носителях, таких как гибкие дискеты, компакт-диски, жесткие диски или любые другие машиночитаемые носители данных, причем, когда код программы загружен в машину и выполняется машиной, такой как компьютер, машина становится устройством для применения изобретения на практике. В случае выполнения программного кода на программируемых компьютерах вычислительное устройство будет в целом включать в себя процессор, носитель данных, читаемый процессором (включая энергозависимую и энергонезависимую память и/или запоминающие элементы), по меньшей мере одно устройство ввода и по меньшей мере одно устройство вывода. Одна или более программ, которые могут использовать создание и/или реализацию зависящих от предметной области аспектов программных моделей данного изобретения, например, с помощью прикладного программного интерфейса обработки данных или подобного, предпочтительно реализуются на процедурном языке программирования высокого уровня или объектно-ориентированном языке программирования для взаимодействия с компьютерной системой. Однако программа(ы) может быть реализована на языке ассемблера или машинном языке, если требуется. В любом случае, язык может быть компилируемым или интерпретируемым языком и объединен с реализацией аппаратных средств.
Хотя данное изобретение было описано в связи с предпочтительными вариантами воплощения согласно различным фигурам, следует понимать, что могут использоваться другие подобные варианты воплощения или могут быть сделаны модификации и добавления к описанным вариантам воплощения для выполнения той же самой функции данного изобретения без отклонений от нее. Поэтому данное изобретение не должно быть ограничено никаким единственным вариантом воплощения, а скорее должно быть истолковано во всей широте объема, определяемого в соответствии с приложенной формулой изобретения.
1. Компьютерная система для позиционирования объектов в многомерном контейнере графического приложения, содержащая:реализуемый процессором модуль позиционирования, который принимает параметры, связанные с размещением набора объектов вдоль криволинейного одномерного многообразия, вложенного, по меньшей мере частично, в упомянутый контейнер, и вычисляет координаты позиционирования каждого объекта в этом наборе объектов вдоль данного криволинейного одномерного многообразия на основе, по меньшей мере частично, протяженности этого объекта и дополнительного пространства, окружающего данный объект, причем это пространство определяется упомянутой протяженностью и/или протяженностью объекта, соседнего с упомянутым объектом в упомянутом наборе объектов, при этом данный набор объектов размещается вдоль упомянутого криволинейного одномерного многообразия таким образом, что каждый объект воспроизводится в модуле дисплея так, что центральная линия этого каждого объекта ориентирована по касательной к данному криволинейному одномерному многообразию.
2. Система по п.1, в которой упомянутое одномерное многообразие организовано в виде направляющего рельса, при этом при размещении каждого объекта каждый объект моделируют как имеющий массу, а также подвешивают каждый объект на это одномерное многообразие, организованное в виде направляющего рельса.
3. Система по п.2, в которой каждый объект приспособлен проявлять инерционные характеристики, которые зависят от скорости каждого объекта относительно упомянутого одномерного многообразия.
4. Система по п.1, в которой упомянутый набор объектов размещается вдоль упомянутого одномерного многообразия с использованием принципа первый-объект-первый/последний-объект-последний.
5. Система по п.1, в которой упомянутое одномерное многообразие является одним из сегментированного пути и кусочно-гладкого пути.
6. Система по п.1, в которой упомянутое криволинейное одномерное многообразие представляет собой круговое одномерное многообразие.
7. Система по п.1, в которой упомянутое криволинейное одномерное многообразие представляет собой открытое одномерное многообразие.
8. Система по п.1, в которой упомянутое криволинейное одномерное многообразие является полиноминальным.
9. Считываемый компьютером носитель, содержащий исполняемые компьютером команды для позиционирования объектов в многомерном контейнере графического приложения путем:определения криволинейного одномерного