Область техники
[0001] Настоящее техническое решение относится к способу и системе хранения данных для отрисовки графических объектов.
Уровень техники
[0002] В компьютерных технологиях широко распространено использование графических объектов. Графические объекты используются в графическом дизайне, картографических сервисах и во многих других областях. Машиночитаемые хранилища вычислительных устройств (и персональных устройств, и других устройств, таких как серверы поставщиков сервисов) могут хранить информацию, представляющую множество графических объектов, причем эта информация может быть использована для создания визуального представления графических объектов. Информация, представляющая множество графических объектов, может включать в себя стандартные координаты графических объектов. Стандартные координаты дают возможность размещения графических объектов в пространстве с помощью выбора набора чисел или букв, определяющих конкретное положение в пространстве. Координаты часто выбираются таким образом, что одно из чисел представляет вертикальное положение, а два или три числа представляют горизонтальное положение. Обычно используются следующие координаты: широта, долгота и высота.
[0003] Сохранение координат графических объектов требует значительных объемов машиночитаемых носителей. Следовательно, становится важным решение проблемы экономного хранения координат объектов. Одним из возможных решений является сохранение границ графических объектов как карт высот. Технология карт высот позволяет сохранить двумерные объекты с помощью сохранения одной прямой линии (базовой линии) и указания «высот» (отклонений) относительно базовой линии, что определяет координаты кривой линии, идущей вдоль базовой линии.
[0004] Более конкретно, в патенте США, озаглавленном «Способ моделирования и отрисовки сложных поверхностей с использованием локальных карт высот» (US 6441816В1) раскрыт способ моделирования и отрисовки трехмерной сложной поверхности с использованием треугольных ячеек. Способ может уменьшить объем необходимой памяти и время отрисовки с помощью локальных карт высот и присвоения соседних координат любой точке на поверхности возле треугольной ячейки, присвоенной этой поверхности. Барицентрические координаты используются для идентификации точек в треугольном полигоне для работы с данными высот на локальной карте высот, связанной с этим треугольным полигоном. Локальные карты высот дают возможность выявлять пересечения луча с трехмерной поверхностью. Константы Липшица, связанные с трехмерными поверхностями, используются для обнаружения точки на следующем луче, ближайшем к трехмерной поверхности, чтобы перейти на эту точку, что делает поиск таких точек пересечения эффективным.
Раскрытие
[0005] На сохранение границ графических объектов с помощью карт высот может потребоваться меньше памяти, чем на сохранение границ графических объектов в виде общепринятых координат, но сохранение в виде карт высот выполняется для сохранения монотонных объектов. Однако множество графических объектов обладает немонотонными границами. Следовательно, существует необходимость в дальнейшем развитии технологий, которые позволят экономить место на машиночитаемых носителях, на которых хранится информация о графических объектах.
[0006] Задачей предлагаемого технического решения является минимизация по меньшей мере некоторых недостатков, присущих известному уровню техники. Технический результат заключается в обеспечении возможности сохранения границ графических объектов в виде карт высот для графических объектов, обладающих немонотонными границами.
[0007] Одним предметом настоящего технического решения является компьютерный способ сохранения данных для отрисовки графического объекта. Графический объект имеет немонотонную границу. Граница определяется своими стандартными координатами. Способ включает в себя: (i) на основе стандартных координат создание границы графического объекта; (ii) применение к границе графического объекта на предварительно определенных интервалах по меньшей мере двух пересекающих элементов, причем каждый пересекающий элемент пересекает границу графического объекта в соответствующей точке пересечения под одинаковым углом пересечения, причем угол пересечения находится в диапазоне углов более нуля градусов и менее 180 градусов; (iii) измерение множества углов между пересекающими элементами и, в ответ на то, что поменьшей мере один угол между двумя частными пересекающими элементами превышает предварительно определенный порог, разделение границы на фрагменты границы в точках, расположенных в соответствующем интервале, определенном этими частными пересекающими элементами, чтобы создать по меньшей мере один монотонный фрагмент границы; (iv) создание базовых линий для каждого созданного монотонного фрагмента границы для получения проекций на каждую базовую линию с каждого фрагмента границы соответственно, таким образом, что каждый фрагмент границы является монотонным относительно его соответствующей базовой линии, и сохранение множества координат базовых линий; (v) проецирование высот с каждого монотонного фрагмента границы на их соответствующие базовые линии, причем проецирование осуществляется с предварительном определенным шагом высот, начиная от начала соответствующего монотонного фрагмента границы и заканчивая концом соответствующего монотонного фрагмента границы; (vi) определение значений высот, причем каждое значение высоты представляет расстояние между соответствующей базовой линией и соответствующей точкой на соответствующем монотонном фрагменте границы, причем значения высот нужны для создания карт высот для монотонных фрагментов границы; (vii) сохранение данных для отрисовки монотонного фрагмента границы как совокупности: множества координат базовых линий и шага высот, причем шаг высот указывает на интервалы между проекциями высот, а также последовательности значений высот в связи с соответствующей базовой линией.
[0008] В некоторых вариантах осуществления настоящего технического решения этапы (i) измерения множества углов между пересекающими элементами и (ii) разделения границы на фрагменты границы осуществляются последовательно и периодически перед созданием базовых линий для фрагментов границ.
[0009] В некоторых вариантах осуществления настоящего технического решения графический объект является двумерным графическим объектом.
[0010] В некоторых вариантах осуществления настоящего технического решения создание границы графического объекта является созданием линии.
[0011] В некоторых вариантах осуществления настоящего технического решения применение к границе графического объекта по меньшей мере двух пересекающих элементов является применением по меньшей мере двух пересекающих линий.
[0012] В некоторых вариантах осуществления настоящего технического решения создание базовой линии выполняется с помощью проведения двух параллельных линий таким образом, что одна из двух параллельных линий пересекает начало фрагмента границы, а другая параллельная линия пересекает конец фрагмента границы, а базовая линия создается как интервал, соединяющий эти две параллельные линии и являющийся перпендикулярным обеим этим параллельным линиям.
[0013] В некоторых вариантах осуществления настоящего технического решения два пересекающих элемента в шаге разделения границы на фрагменты границы являются последовательными пересекающими элементами, и способ дополнительно включает в себя разделение указанных фрагментов границы на меньшие фрагменты до тех пор, пока каждый угол между каждыми двумя не являющимися последовательными пересекающими элементами в пределах соответствующего меньшего фрагмента не окажется меньше, чем предварительно определенный порог.
[0014] В некоторых вариантах осуществления настоящего технического решения значения высот выбираются из: положительных значений, нулевого значения, отрицательных значений.
[0015] В некоторых вариантах осуществления настоящего технического решения каждый угол пересечения между каждым пересекающим элементом и границей графического объекта в каждой соответствующей точке пересечения равен 90 градусов.
[0016] Другим предметом настоящего технического решения является вычислительное устройство сохранения данных для отрисовки графического объекта. Графический объект обладает немонотонными границами, определенными стандартными координатами. Вычислительное устройство включает в себя процессор. Вычислительное устройство включает в себя носитель информации. Носитель информации хранит машиночитаемые инструкции, которые, при их исполнении, инициируют выполнение процессором: (i) на основе стандартных координат создания границы графического объекта; (ii) применения к границе графического объекта на предварительно определенных интервалах по меньшей мере двух пересекающих элементов, причем каждый пересекающий элемент пересекает границу графического объекта в соответствующей точке пересечения под одинаковым углом пересечения, причем угол пересечения находится в диапазоне углов более нуля градусов и менее 180 градусов; (iii) измерения множества углов между пересекающимиэлементами и, в ответ на то, что по меньшей мере один угол между двумя частными пересекающими элементами превышает предварительно определенный порог, разделение границы на фрагменты границы в точках, расположенных в соответствующем интервале, определенном этими частными пересекающими элементами, чтобы создать по меньшей мере один монотонный фрагмент границы; (iv) создания базовых линий для каждого созданного монотонного фрагмента границы для получения проекций на каждую базовую линию с каждого фрагмента границы соответственно, таким образом, что каждый фрагмент границы является монотонным относительно его соответствующей базовой линии, и сохранение множества координат базовых линий; (v) проецирования высот с каждого монотонного фрагмента границы на их соответствующие базовые линии, причем проецирование осуществляется с предварительном определенным шагом высот, начиная от начала соответствующего монотонного фрагмента границы и заканчивая концом соответствующего монотонного фрагмента границы; (vi) определения значений высот, причем каждое значение высот представляет расстояние между соответствующей базовой линией и соответствующей точкой на соответствующем монотонном фрагменте границы, причем значения высот нужны для создания карт высот для монотонных фрагментов границы; (vii) сохранения данных для отрисовки монотонного фрагмента границы как совокупности: множества координат базовых линий и шага высот, причем шаг высот указывает на интервалы между проекциями высот, а также последовательности значений высот в связи с соответствующей базовой линией.
[0017] В некоторых вариантах осуществления вычислительного устройства этапы (i) измерения множества углов между пересекающими элементами и (ii) разделения границы на фрагменты границы осуществляются последовательно и периодически перед созданием базовых линий для фрагментов границ.
[0018] В некоторых вариантах осуществления вычислительного устройства графический объект является двумерным графическим объектом.
[0019] В некоторых вариантах осуществления вычислительного устройства создание границы графического объекта является созданием линии.
[0020] В некоторых вариантах осуществления вычислительного устройства применение к границе графического объекта по меньшей мере двух пересекающих элементов является применением по меньшей мере двух пересекающих линий.
[0021] В некоторых вариантах осуществления вычислительного устройства создание базовой линии выполняется с помощью проведения двух параллельных линий таким образом, что одна из двух параллельных линий пересекает начало фрагмента границы, а другая параллельная линия пересекает конец фрагмента границы, а базовая линия создается как интервал, соединяющий эти две параллельные линии и являющийся перпендикулярным обеим этим параллельным линиям.
[0022] В некоторых вариантах осуществления вычислительного устройства два пересекающих элемента на шаге разделения границы на фрагменты границы являются последовательными пересекающими элементами, и инструкции, при их исполнении процессором, дополнительно инициируют разделение процессором указанных фрагментов границы на меньшие фрагменты до тех пор, пока каждый угол между каждыми двумя не являющимися последовательными пересекающими элементами в пределах соответствующего меньшего фрагмента не окажется меньше, чем предварительно определенный порог.
[0023] В некоторых вариантах осуществления вычислительного устройства значения высот выбираются из: положительных значений, нулевого значения, отрицательных значений.
[0024] В некоторых вариантах осуществления вычислительного устройства каждый угол пересечения между каждым пересекающим элементом и границей графического объекта в каждой соответствующей точке пересечения равен 90 градусов.
[0025] В контексте настоящего описания «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данного технического решения. В контексте настоящего технического решения использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспеченияили аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами; оба варианта включены в выражение «по меньшей мере один сервер».
[0026] В контексте настоящего описания, если конкретно не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, выполняющем процесс, на котором хранится или используется информация, хранящаяся в базе данных, или же база данных может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.
[0027] В контексте настоящего описания, если конкретно не указано иное, термин «координаты» подразумевает под собой расположение точек и/или линий, или тому подобного, в подходящих системах отсчета. Системы отсчета могут являться, например, числами и/или любыми другими символами, которые используются для определения расположения точки и линии (включая кривые) в пространстве данного измерения относительно системы линий (осей) или в других неподвижных системах отсчета.
[0028] В контексте настоящего описания, если конкретно не указано иное, термин «пересекающий элемент» подразумевает под собой линии, которые пересекают границу графического объекта («пересекающая линия»). Однако в некоторых вариантах осуществления настоящего технического решения термин «пересекающий элемент» может означать другой пересекающий элемент, например, пересекающую плоскость, причем пересекающая плоскость пересекает границу графического объекта.
[0029] В контексте настоящего описания, если конкретно не указано иное, термин «угол» означает угол наклона между двумя линиями и плоскостями, или между их воображаемыми продолжениями. В контексте настоящего описания некоторые линии могут быть параллельными, и, следовательно, угол наклона между ними может быть нулевым. Принимая это во внимание, в контексте настоящего описания, когда две линии илиплоскости параллельны, угол рассматривается как существующий и равный нулю градусов. Термин «угол» включает в себя также криволинейные углы.
[0030] В контексте настоящего описания выражение «криволинейный угол» означает, если конкретно не указано иное, угол между линией и кривой, который определяется как угол между касательными в точке пересечения.
[0031] В контексте настоящего описания, если конкретно не указано иное, термин «градус» означает 1/360 оборота, и один оборот равен 360 градусов (360°).
[0032] В контексте настоящего описания, если конкретно не указано иное, выражение «бинарные градусы», также упоминаемое как «бинарный радиан», означает 1/256 оборота. Бинарный градус используется в вычислениях для того, чтобы угол можно было успешно представить одним байтом (хотя и с ограниченной точностью).
[0033] В контексте настоящего описания, если конкретно не указано иное, выражение «часовой угол» означает 1/24 оборота.
[0034] В контексте настоящего описания, если конкретно не указано иное, выражение «град», также упоминаемое как «гон», означает 1/400 оборота, и, таким образом, прямой угол равен 100 град. Это десятичная субъединица квадранта.
[0035] В контексте настоящего описания, если конкретно не указано иное, «информация» включает в себя любую информацию любого типа, включая информацию, которую можно хранить в базе данных. Таким образом, информация включает в себя, среди прочего, данные (картографические данные, данные о местоположении, цифровые данные и т.д.), аудиовизуальные произведения (фотографии, видео, звукозаписи, презентации и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.
[0036] В контексте настоящего описания, если конкретно не указано иное, слово «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).
[0037] В контексте настоящего описания, если конкретно не указано иное, термин «носитель информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски ит.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.
[0038] В контексте настоящего описания, если конкретно не указано иное, слова «первый», «второй», «третий» и и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной взаимосвязи между этими существительными. Так, например, следует иметь в виду, что использование терминов «первая исходная граница» и «третья исходная граница» не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) исходных границ / между исходными границами, равно как и их использование (само по себе) не предполагает, что некая «вторая исходная граница» обязательно должна существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание «первого» элемента и «второго» элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, «первый» элемент и «второй» элемент могут являться одним и тем же элементом, а в других случаях они могут являться разными элементами.
[0039] В контексте настоящего описания, если конкретно не указано иное, выражение «графический объект» подразумевает под собой любой графический объект, который может быть отображен на экране компьютера (или другими средствами визуального вывода). Графические объекты могут быть любыми двумерными объектами, включая линейные объекты. Графические объекты могут иметь любую форму. Границы графических объектов могут быть прямыми или кривыми линиями, или и тем, и другим, в зависимости от графического объекта.
[0040] В контексте настоящего описания, если конкретно не указано иное, термин «граница» графического объекта подразумевает под собой границу графического объекта или фрагмент границы графического объекта. Границы могут быть линиями (кривыми, прямыми, или и теми и другими). В некоторых вариантах осуществления настоящего технического решения границы графического объекта могут совпадать с этим графическим объектом (например, когда графической объект является линейным объектом, таким как кривая или прямая линия).
[0041] Каждый вариант осуществления настоящего технического решения преследует по меньшей мере одну из вышеупомянутых целей и/или объектов. Следует иметь в виду, что некоторые объекты данного технического решения, полученные в результате попыток достичь вышеупомянутой цели, могут удовлетворять другим целям, отдельно не указанным здесь.
[0042] Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления настоящего технического решения станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
Краткое описание чертежей
[0043] Для лучшего понимания настоящего технического решения, а также других ее аспектов и характерных черт, сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:
[0044] На Фиг. 1 представлена принципиальная схема системы, выполненной в соответствии с вариантом осуществления настоящего технического решения.
[0045] На Фиг. 2 представлен неограничивающий пример двумерного графического объекта, реализованного в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0046] На Фиг. 3 представлен альтернативный неограничивающий пример двумерного графического объекта, реализованного в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0047] На Фиг. 4 представлен этап применения к границе графического объекта на предварительно определенных интервалах множества пересекающих элементов, причем этап применения к границе графического объекта множества пересекающих элементов выполняется процессором системы с Фиг. 1 в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0048] На Фиг. 5 представлен угол между пересекающими элементами, причем пересекающие элементы применены к границе графического объекта процессором системы с Фиг. 1 в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0049] На Фиг. 6 представлено создание процессором системы с Фиг. 1 базовых линий для фрагментов границы, причем базовые линии созданы в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0050] На Фиг. 7 представлен неограничивающий пример высот, спроецированных на предварительно определенный интервал на базовой линии под углом 90 градусов, причем высоты были спроецированы процессором системы с Фиг. 1 в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0051] На Фиг. 8 представлен этап определения значений высот, причем этап определения значений высот осуществляется процессором системы с Фиг. 1 в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0052] На Фиг. 9 представлено альтернативное расположение базовой линии по отношению к фрагменту границы, причем альтернативное расположение базовой линии по отношению к фрагменту границы осуществляется процессором системы с Фиг. 1 в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0053] На Фиг. 10 альтернативно представлен этап определения значений высот по отношению к базовой линии с Фиг. 9, причем этап определения значений высот осуществляется процессором системы с Фиг. 1 в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0054] На Фиг. 11 представлена блок-схема способа сохранения данных для отрисовки графического объекта с Фиг. 2, причем графический объект имеет немонотонную границу, определенную стандартными координатами, и способ является примером настоящего технического решения, не ограничивающим его объем.
Осуществление
[0055] На Фиг. 1 представлена схема системы 100, выполненная в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем. Важно иметь в виду, что нижеследующее описание системы 100 представляетсобой описание показательных вариантов осуществления настоящего технического решения. Таким образом, все последующее описание представлено только как описание показательного примера настоящего технического решения. Это описание не предназначено для определения объема или установления границ настоящего технического решения. Некоторые полезные примеры модификаций системы 100 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящего технического решения. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента настоящего технического решения. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 100 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящего технического решения, и в подобных случаях этот вариант представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящего технического решения будут обладать гораздо большей сложностью.
[0056] Система 100 включает в себя компьютерное устройство 102, являющееся сервером 102. Сервер 102 может представлять собой обычный компьютерный сервер. В примере варианта осуществления настоящего технического решения, сервер 102 может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Излишне говорить, что сервер 102 может представлять собой любое другое подходящее аппаратное и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В представленном варианте осуществления настоящего технического решения, не ограничивающем его объем, сервер 102 является одиночным сервером. В других вариантах осуществления настоящего технического решения, не ограничивающих его объем, функциональность сервера 102 может быть разделена и может выполняться с помощью нескольких серверов.
[0057] В некоторых вариантах осуществления настоящего технического решения сервер 102 может находиться под контролем и/или управлением поставщика картографическихсервисов, такого, например, как поставщик сервиса Яндекс. Карты (Yandex Maps™). В альтернативных вариантах осуществления настоящего технического решения сервер 102 может получать доступ к картографическому сервису, предоставляемому сторонними поставщиками. В других вариантах осуществления настоящего технического решения сервер 102 может находиться под контролем и/или управлением поставщика таких сервисов, как сервисы компьютерных игр, сервисы графического дизайна и других сервисов, имеющих отношение к компьютерной графике.
[0058] Сервер 102 включает в себя носитель 104 информации, который может использоваться сервером 102. В общем случае носитель 104 информации может быть выполнен как носитель любого характера и вида, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д. а также их комбинацию.
[0059] Варианты осуществления сервера 102 хорошо известны. Таким образом, достаточно отметить, что сервер 102 включает в себя, среди прочего, интерфейс сетевой передачи данных (например, модем, сетевую карту и тому подобное) для двусторонней связи по сети передачи данных (не изображена); и процессор 108, соединенный с интерфейсом сетевой передачи данных и носителем 104 информации, причем процессор 108 выполнен с возможностью выполнять различные процедуры, включая те, что описаны ниже. С этой целью процессор 108 может иметь доступ к машиночитаемым инструкциям, хранящимся на носителе 104 информации, выполнение которых инициирует реализацию процессором 108 различных описанных здесь процедур.
[0060] В некоторых вариантах осуществления настоящего технического решения, не ограничивающих его объем, сеть передачи данных может представлять собой Интернет. В других вариантах осуществления настоящего технического решения сеть передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.
[0061] Носитель 104 информации выполнен с возможностью хранить данные, включая машиночитаемые инструкции и другие данные, включая данные графических объектов любого типа. В некоторых вариантах осуществления настоящего технического решения носитель 104 информации может хранить по меньшей мере часть данных в базе данных 106. В других вариантах осуществления настоящего технического решения носитель 104информации может хранить по меньшей мере часть данных в любом наборе данных, который отличается от базы данных.
[0062] Данные, сохраненные на носителе 104 информации (и, более конкретно, по меньшей мере частично, в некоторых вариантах осуществления настоящего технического решения, в базе данных 106) могут включать в себя стандартные координаты для отрисовки графических объектов любого типа.
[0063] Графические объекты могут быть двумерными объектами любого типа. Двумерные объекты могут быть двумерными линейными объектами (например, линией) и двумерными пространственными объектами (например, треугольником).
[0064] Границы графических объектов определяют их контуры. Границы линейных объектов, например, линий, совпадают с этими объектами. Другими словами, линейный графический объект имеет те же самые координаты, что его границы. Границы двумерных пространственных объектов могут быть прямыми линиями и/или кривыми линиями. Кривые линии могут быть правильной геометрической формы (например, окружность, эллипс, квадрат) и/или неправильной геометрической формы.
[0065] Границы графических объектов могут быть определены стандартными координатами. Примером стандартной системы координат является декартова система координат.
[0066] Графические объекты могут быть монотонными или немонотонными. Двумерный графический объект является монотонным по отношению к прямой линии (базовой линии), если каждая линия, ортогональная к базовой линии, пересекает границу графического объекта только один раз. Двумерный графический объект является немонотонным по отношению к прямой линии (базовой линии), если каждая линия, ортогональная к базовой линии, пересекает границу графического объекта не менее двух раз.
[0067] Примеры графических объектов, не ограничивающие объем настоящего технического решения, изображены на Фиг. 2 и Фиг. 3.
[0068] На Фиг. 2 изображен неограничивающий пример графического объекта 200. Графический объект 200 является двумерным линейным графическим объектом в виде кривой линии. Координаты границ графического объекта 200 могут быть определены на основе декартовой системы координат. Декартова система координат является системойкоординат, которая определяет каждую точку на плоскости с помощью двух численных координат, которые являются расстояниями знаковой величины от точки до фиксированных перпендикулярных направленных линий, Y-оси 202 и Х-оси 204, причем это расстояние измеряется в одинаковых единицах длины. Термин «расстояния знаковой величины» означает, что каждое ненулевое вещественное число может быть либо положительным, либо отрицательным. Оси 202, 204 называются координатными осями или просто осями системы, и точка 206, где эти оси пересекаются, является началом координат, обычно в упорядоченной паре (0;0). Координаты также могут быть определены как положения перпендикулярных проекций точки на две оси, выраженные как расстояния знаковой величины от начала координат. Например, координаты точки 208 (2;6), координаты точки 210 (2;1), координаты точки 212 (4;6), координаты точки 214 (4;1), а координаты точки 216 (6;6).
[0069] Графический объект 200 является немонотонным по отношению к Х-оси 204 (базовой линии), поскольку не каждая линия, ортогональная к Х-оси (204) пересекает границу графического объекта 200 только один раз. Как можно видеть на Фиг. 2, ортогональная линия, спроецированная на Х-ось 204 из точки 208 пересекает границу графического объекта 200 в двух точках 208 и 210. Аналогично, множество линий, спроецированные на Х-ось 204 из точек слева и справа от точки 208 пересекают границу графического объекта 200 в двух точках. Кроме того, некоторые линии, спроецированные на Х-ось 204 из точек справа от точки 208 пересекают границу графического объекта 200 в трех точках (не изображены).
[0070] Графический объект 200 является также немонотонным по отношению к Y-оси 202 (базовой линии), поскольку не каждая линия, ортогональная к Y-оси 202, пересекает границу графического объекта 200 только один раз. Как можно видеть на Фиг. 2, ортогональная линия, спроецированная на Y-ось 202 из точки 216, пересекает границу графического объекта 200 в трех точках 216, 212 и 208. Аналогично, некоторые другие линии, спроецированные на Y-ось 202 из границы графического объекта 200, пересекают границу графического объекта 200 в двух или трех точках.
[0071] На Фиг. 3 изображен неограничивающий пример графического объекта 300. Графический объект 300 также является двумерным линейным графическим объектом в виде кривой линии. Координаты графического объекта 300 могут быть определены на основе стандартных координат. Графический объект 300 является линией, соединяющейточки, обладающие следующими координатами: (-8;-1), (-7;-1), (-6;-1), (-5;-1), (-4;-1), (-3;-0,5), (-2;0), (-1;0,5), (0;1), (2;1), (3;1,75), (4;2,2), (5;2), (6;1,75), (7;0,2), (8;0), (9;-0,3); (10;-0,8), (11;-0,8), (12;-0,8), (13;-0,8), (14;-0,8). Графический объект 300 является монотонным по отношению к базовой линии, которая в этом примере является прямой линией, соединяющей точки 302 и 304, так как каждая линия, ортогональная прямой линии, соединяющей две точки 302 и 304, пересекает границу графического объекта 200 только один раз. В этом примере базовая линия проходит вдоль части Х-оси 204. Базовая линия сама по себе может обладать стандартными координатами, определяющими длину и положение базовой линии в двумерном пространстве. В альтернативных вариантах осуществления настоящего технического решения базовая линия может проходить в любом направлении (например, вдоль Y-оси 202), и может быть расположена в любой части двумерного пространства.
[0072] Графический объект может быть монотонным по отношению к одной базовой линии, и немонотонным по отношению к другой линии. Например, графический объект 300 является немонотонным по отношению к Y-оси 202, поскольку некоторые линии, ортогональные Y-оси 202, пересекают границу графического объекта 300 дважды. Например, одна линия, ортогональная Y-оси 202, будет пересекать границу первого графического объекта 300 в двух точках, обладающих координатами (-2;0) и (8;0).
[0073] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют извлечение процессором 108 стандартных координат графического объекта и, на основе этих координат, создание границы графического объекта. Например, процессор 108 может извлекать стандартные координаты графического объекта 200 и, на основе координат, создавать границу графического объекта 200, как описано на Фиг. 2.
[0074] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют применение процессором 108 к границе графического объекта на предварительно определенных интервалах по меньшей мере двух пересекающих элементов, причем каждый пересекающий элемент пересекает границу графического объекта в соответствующей точке пересечения под одинаковым углом пересечения, причем угол пересечения находится в диапазоне от 0 градусов до 180 градусов. Процессор 108 может определить интервал между пересекающими элементами, принимая во внимание один или несколько факторов, например, длину границысоответствующего графического элемента, природу графического объекта и другие. Например, интервал между пересекающими элементами может быть определен в зависимости от длины границы соответствующего графического элемента таким образом, что чем длиннее граница, тем выше число используемых пересекающих элементов. Интервал между пересекающими элементами может быть равным, например, 1/400 длины соответствующей границы соответствующего объекта. В другом неограничивающем примере число пересекающих элементов может быть обратно пропорционально вычислительной мощности процессора 108. Другим неограничивающим фактором, который может быть рассмотрен, является природа графического объекта (одна частота пересекающих элементов для общего картографического сервиса, и меньшая частота пересекающих элементов для кадастровых планов, где форма земельных участков обычно менее неправильная и, как правило, в основном представляет собой прямые линии).
[0075] Как изображено на Фиг. 4, процессор 108 может применять к границам графического объекта 200 с Фиг. 2 на предварительно определенных интервалах из 4 пикселей 19 пересекающих элементов (402, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438), которые являются пересекающими линиями, при чем каждый пересекающий элемент 402-438 пересекает границу графического объекта 200 в соответствующей точке пересечения (точки 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 478, 480, 482, 484, 486, 488) под тем же самым углом пересечения к границе линии в каждой точке пересечения. В этом примере угол пересечения одинаков и составляет 90 градусов, т.е. перпендикуляр к границе в каждой точке. Угол пересечения является предварительно определенным.
[0076] Специалистам в данной области техники будет понятно, что угол пересечения не обязательно составляет 90 градусов. В других вариантах осуществления настоящего технического решения все пересекающие элементы могут пересекать границы графического объекта под другим углом, например, 68 градусов. В других вариантах осуществления настоящего технического решения все пересекающие элементы могут пересекать границы графического объекта под любым другим углом более 0 градусов и менее 180 градусов (например, под углом 33 градуса).
[0077] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют измерение процессором 108 по меньшей мере одного угла между по меньшей мере двумя пересекающими элементами. Например, в некоторыхвариантах осуществления настоящего технического решения процессор 108 может измерить все углы между каждыми двумя последовательными пересекающими элементами, т.е. между соответствующими парами пересекающих элементов 402 и 404, 404 и 406, 406 и 408 и так далее, заканчивая измерением углов между пересекающими элементами 436 и 438.
[0078] Углы между пересекающими элементами могут различаться благодаря тому факту, что пересекающий элемент пересекает границу графического объекта 200 под одним и тем же углом (например, 90 градусов), но граница сама по себе искривлена. Вследствие этого угол очень острый в случае, когда границы слегка изогнуты, и угол становится больше в областях, где граница искривляется более круто. На прямых фрагментах (если они присутствуют) границы пересекающие элементы могут быть параллельными. Таким образом, если любые два данных пересекающих элемента параллельны, это указывает на то, что фрагмент границы между этими двумя пересекающими элементами является прямой линией (т.е., что эти фрагменты границы не искривлены). Угол в один градус между пересекающими элементами указывает на то, что фрагмент границы между этими двумя пересекающими элементами искривляется слегка, так, что это почти незаметно. Угол в 90 градусов между пересекающими элементами указывает на то, что фрагмент границы между этими двумя пересекающими элементами имеет поворот на 90 градусов.
[0079] Например, с учетом Фиг. 5, пересекающие элементы 402 и 404 параллельны (если угол 502 является нулевым углом) или почти параллельны (если угол 502 составляет немногим больше, чем ноль градусов), что указывает на то, что фрагмент границы между точками 452 и 454 пересечения является либо прямой линией (если угол 502 между пересекающими элементами 402 и 404 равен нулю), либо, что фрагмент границы между точками 452 и 454 пересечения обладает очень небольшим искривлением (если угол 502 между пересекающими элементами 402 и 404 составляет немногим больше, чем ноль градусов).
[0080] Напротив, углы 504, 526, 534, 536 - большие углы, указывающие на то, что граница графического объекта 200 в этих конкретных областях имеет резкий поворот.
[0081] Кроме того, углы 514 и 516 больше, чем угол 502, но меньше, чем углы 504 и 526. Сравнительно средний по величине угол 514 указывает на то, что между точками 464 и 466 пересечения граница искривляется умеренно. Аналогично, средний по величине угол 516указывает на то, что между точками 466 и 468 пересечения граница искривляется умеренно.
[0082] Процессор 108 может измерить углы между пересекающими элементами. В примере, приведенном выше, процессор 108 измеряет углы в градусах. В других вариантах осуществления настоящего технического решения, углы могут быть измерены и выражены в любых других подходящих единицах измерения, например, в бинарных градусах, часовых углах, градах и иных единицах измерения.
[0083] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют создание процессором 108, в ответ на превышение углом между двумя пересекающими элементами предварительно определенного порога, двух фрагментов границы с помощью разделения границы на два фрагмента границы в одной из точек пересечения или в любой иной точке в пределах интервала между этими двумя точками пересечения (т.е. между двумя соответствующими пересекающими элементами). Создание двух фрагментов границы с помощью разделения границы на два фрагмента границы происходит, когда графический объект 200 является линейным объектом (незамкнутой петлей). В случае, когда графический объект является двумерным объектом с контурной границей (т.е. замкнутой петлей), одно разделение даст петлю, которую можно рассматривать как незамкнутую, а второе разделение даст два фрагмента границы, причем каждый фрагмент границы определяется двумя точками в разделяемой области.
[0084] Например, с учетом Фиг. 5, порог может быть предварительно определен таким образом, что, если угол между двумя последовательными пересекающими элементами превышает 45 градусов, процессор 108 может разделить границу 200 на два фрагмента границы в одной точке пересечения в пределах интервала между этими двумя пересекающими элементами. Процессор 108 может определить, что угол 502 меньше, чем 45 градусов. Следовательно, процессор 108 не делит границу графического объекта 200 в любом месте между точками 452 и 454 пересечения. Затем процессор 108 может определить, что угол 504 составляет больше, чем 45 градусов. Следовательно, процессор 108 делит границу графического объекта 200 в любом месте между точками 454 и 456 пересечения, включая любую из этих точек саму по себе. Выбор конкретной точки разделения между точками пересечения не важен - это может быть одна из соответствующих точек 454 или 456 пересечения, или любая другая точка между ними. Например, процессор 108 может разделить границу в точке 456 пересечения. Аналогично,процессор 108 может проверить каждый последовательный угол и определить, необходимо ли разделение. Таким образом, процессор может определить, что еще три угла 526, 534 и 536 превышают 45 градусов и, следовательно, граница может быть поделена на соответствующие области (между линиями пересечения, создавшими эти соответствующие углы).
[0085] Осуществив начальное разделение, процессор 108 может проанализировать углы между не являющимися последовательными пересекающими элементами в пределах каждого фрагмента. Например, процессор 108 может проверить фрагмент от точки 456 до точки 476, начиная с точки 456. После анализа углов 514 и 516 процессор 108 может установить, что сумма углов 514 и 516 превышает 45 градусов. Другими словами, угол между пересекающими элементами 414 и 418 превышает 45 градусов. В ответ на то, что угол между пересекающими элементами 414 и 418 превышает 45 градусов, процессор 108 может разделить границу первого графического объекта 200 в любом месте между точками пересечения 464 и 468. Следовательно, значительный, но плавный поворот границы может быть рассмотрен при определении необходимости разделения границы графического объекта 200.
[0086] Разделение границы графического объекта 200 позволяет создавать монотонные фрагменты границы, поскольку искривленные части границы могут быть определены с помощью определения крутых углов, и граница может быть затем разделена на ряд монотонных фрагментов, пока в каждом фрагменте не будут отсутствовать пересекающие элементы, образующие превышающий порог угол. В итоге полученные фрагменты могут не содержать искривлений, которые делают фрагмент немонотонным.
[0087] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют создание процессором 108 после того, как был создан монотонный фрагмент границы, базовые линии для монотонного фрагмента границы. В некоторых вариантах осуществления настоящего технического решения машиночитаемые инструкции могут инициировать создание процессором 108 множества базовых линий для множества монотонных фрагментов границы. Каждая базовая линия может быть создана для соответствующего монотонного фрагмента границы. Например, с учетом Фиг. 6, могут быть созданы шесть базовых линий 602, 604, 606, 608, 610.
[0088] Создание базовых линий может быть выполнено с помощью проведения двух параллельных линий таким образом, что одна из двух параллельных линий пересекает начало монотонного фрагмента границы, а другая параллельная линия пересекает конец монотонного фрагмента границы, а базовая линия создается как интервал, соединяющий эти две параллельные линии и являющийся перпендикулярным обеим этим параллельным линиям.
[0089] Например, базовая линия 602 может быть создана с помощью проведения линии 6020 и линии 6022, причем линии 6020 и линия 6022 параллельны друг другу. Линия 6022 пересекает начало фрагмента границы в точке 452 пересечения, а другая параллельная линия 6020 пересекает конец фрагмента границы в точке 456 пересечения, а базовая линия 602 создается как интервал, соединяющий эти две параллельные линии 6020, 6022 и являющийся перпендикулярным обеим этим параллельным линиям 6020, 6022.
[0090] В другом примере базовая линия 604 может быть создана с помощью проведения линии 6040 и линии 6042, причем линии 6040 и линия 6042 параллельны друг другу. Линия 6042 пересекает начало фрагмента границы в точке 456 пересечения, а другая параллельная линия 6040 пересекает конец фрагмента границы в точке 466 пересечения, а базовая линия 604 создается как интервал, соединяющий эти две параллельные линии 6040, 6042 и являющийся перпендикулярным обеим этим параллельным линиям 6040, 6042.
[0091] Создание базовых линий осуществляется таким способом, чтобы дать возможность осуществить проецирование на базовую линию из соответствующего фрагмента границы. Создание базовых линий должно быть осуществлено таким образом, что фрагменты границы монотонны относительно базовой линии, и две параллельные линии 6040 и 6042 дают возможность создать проекцию всего фрагмента границы, находящегося между токами 456 и 466 пересечения, таким образом, что каждая высота из каждой возможной точки между точками 456 и 466 не будет пересекать соответствующий фрагмент границы. Так, например, будет невозможно создать базовую линию 604 как вертикальную линию слева или справа от фрагмента границы, определенного между точками 456 и 466. Чтобы выбрать подходящее расположение базовой линии 604, процессор 108 проверяет, присутствуют ли по меньшей мере две точки в пределах фрагмента границы, которые будут иметь одинаковые координаты на Х-оси 204 и/или Y-оси 202. Если по меньшей мере две точки в пределах фрагмента границы имеют одинаковую координату по Y-оси 202, база 208не может проходить вдоль Y-оси 202. Кроме того, если по меньшей мере две точки в пределах фрагмента границы имеют одинаковую координату по Х-оси 204, база 208 не может проходить вдоль Х-оси 204. Если базовая линия не может быть ни горизонтальной, ни вертикальной, базовая линия может быть создана как линия под уклоном по отношению к осям 202 и 204.
[0092] Как можно хорошо видеть на Фиг. 9, точки 813 и 819 обладают одинаковыми координатами по Y-оси 202. Таким образом, базовая линия 604 не может проходить вдоль Y-оси 202 (вертикально). Однако в пределах фрагмента границы нет точек, которые имеют одинаковые координаты по Х-оси 204. Следовательно, процессор 108 может создать базовую линию, проходящую вдоль Х-оси 204 (т.е. горизонтально).
[0093] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их выполнении, инициируют сохранение процессором 108 координат созданных базовых линий. Координаты базовой линии могут быть сохранены в любой подходящей системе координат.
[0094] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют проецирование процессором 108 с предварительно определенным шагом, начиная от начала соответствующего фрагмента границы и заканчивая концом фрагмента границы, высот с фрагмента границы на базовую линию. Интервалы между высотами предварительно определены таким образом, что интервалы между высотами меньше, чем интервалы между пересекающими элементами. Например, интервалы между высотами могут быть предварительно определены таким образом, что каждый интервал между двумя последовательными высотами равен 1/10 интервала между двумя последовательными пересекающими элементами. Чем меньше предварительно определенный интервал между последовательными высотами, тем более точны координаты соответствующей части границы.
[0095] На Фиг. 7 представлен неограничивающий пример двадцати одного варианта высот 802, причем высоты 802 спроецированы с предварительно определенным интервалом в 1 пиксель на базовую линию 604 под углом 90 градусов. Высоты 802 спроецированы на базовую линию 602 начиная с начала фрагмента границы в точке 466 пересечения, и затем из точек 811, 812, 813, 814, 815, 816, 817, 819, 820 и так далее, заканчивая точками 828, 829, 456, причем точка 456 является конечной точкой фрагмента границы. В этом вариантеосуществления настоящего технического решения предварительно определенный интервал определяет интервал между каждыми двумя последовательными высотами 802, спроецированными на одну и ту же базовую линию 604.
[0096] Выражение «начиная с начала фрагмента границы и заканчивая концом фрагмента границы» не подразумевает, что существует какая-то последовательность проецирования высот. Высоты могут быть спроецированы в любой последовательности, включая одновременное проецирование всех или некоторых высот. Выражение «начиная с начала фрагмента границы и заканчивая концом фрагмента границы» скорее подразумевает, что существуют границы проецирования. Таким образом, в примере, изображенном на Фиг. 7, самая дальняя левая высота 802 совпадает с линией 6040, а самая дальняя правая высота 802 совпадает с линией 6042, причем линии 6040 и 6042 были ранее использованы для создания базовой линии 604.
[0097] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют определение процессором 108 значений высот.
[0098] Значения высот являются расстояниями между базовой линией и соответствующими координатами фрагмента границы. Целью определения является создание карты высот фрагмента границы. С учетом Фиг. 7 в качестве неограничивающего примера процессор 108 может определить расстояния между базовой линией 604 и следующими точками на фрагменте границы: 466, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820 и т.д., заканчивая точками 828, 829, 456. Эти определенные расстояния являются значениями высот.
[0099] В примерах на Фиг. 6, Фиг. 7 и Фиг. 9 все точки в диапазоне от точки 466 до точки 456 расположены на одной и той же стороне относительно базовой линии 604 (сверху над базовой линией 604). В этом примере, как можно видеть на Фиг. 8, все высоты обладают одинаковым знаком, например, +8, +7, +6, +4, +3, +3, +3, +4 и т.д.
[00100] Однако возможно, что в некоторых вариантах осуществления настоящего технического решения базовая линия пересекает фрагмент границы, для которого эта базовая линия была создана, как было описано для Фиг. 3. Для большей точности на Фиг. 9 изображен альтернативный вариант осуществления базовой линии 604, причем в этом варианте осуществления настоящего технического решения базовая линия 604 пересекает фрагмент границы, для которого она была создана. В итоге высоты 802 могут бытьспроецированы в две стороны (в этом примере вверх и вниз). Следовательно, как показано на Фиг. 10, значения высот могут обладать разными знаками, положительным (например, +3, +2, +1, +2 и так далее) и отрицательным (например, -1, -2, -2, -2, -1). Кроме того, некоторые значения высот могут быть нулевыми значениями, когда фрагмент границы, базовая линия 604 и высота 802 пересекаются в одной и той же точке (например, в точках 813 и 819).
[00101] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют сохранение процессором 108 данных для отрисовки фрагмента границы как совокупности: координат базовых линий, шага высот, причем шаг высот указывает на интервалы между проекциями высот, и последовательности значений высот.
[00102] Например, процессор 108 может сохранить координаты базовой линии 604 в декартовой системе координат. Затем процессор 108 сохраняет шаг высот, который, в этом варианте осуществления настоящего технического решения, как было указано выше, составляет 1 пиксель (что является предварительно определенным интервалом между высотами). Затем процессор 108 сохраняет последовательность значений высот, например, слева направо, с учетом Фиг. 10:+3,+2,+1, 0, -1, -2, -2, -2, -1, 0,+2, и так далее до значения последней справа высоты 802.
[00103] Вычислительное устройство 102 системы 100 было описано выше как сервер 102. Однако это не является необходимым условием в каждом варианте осуществления настоящего технического решения. В альтернативном варианте осуществления настоящего технического решения вычислительное устройство 102 может быть альтернативно осуществлено как клиентское устройство 102.
[00104] Клиентское устройство 102 обычно связано с пользователем (не изображен). Следует отметить, что тот факт, что клиентское устройство 102 связано с пользователем, не подразумевает какого-либо конкретного режима работы, равно как и необходимости входа в систему, регистрации, или чего-либо подобного.
[00105] Клиентское устройство 102 может быть, например, реализовано как Dell™ Precision Т1700 МТ CA033PT170011RUWS PC с процессором 108 Intel® Xeon™ с частотой 3300 МГц, видеокартой nVIDIA Quadra K2000 (не изображена) и с установленной и действующей операционной системой Windows 7® Pro 64-bit. Клиентское устройство 102, среди прочего, включает в себя интерфейс связи (не изображен), например, модем, сетевую карту и так далее для двусторонней связи по сети передачи данных (не изображена) с другими вычислительными устройствами. Как будет понятно специалисту в данной области техники, реализация клиентского устройства 102 никак конкретно не ограничена. Клиентское устройство 102 может быть реализовано в виде персонального компьютера (настольного компьютера, ноутбука, нетбука и т.п.), беспроводного устройства передачи данных (мобильного телефона, смартфона, планшета и т.п.), а также другого оборудования.
[00106] Клиентское устройство 102 может включать в себя устройство пользовательского ввода (не изображено). Реализация устройства пользовательского ввода не ограничена и будет зависеть от того, какое клиентское устройство 102 используется. Устройство пользовательского ввода может включать в себя любой механизм предоставления пользовательского ввода процессору 108. Устройство пользовательского ввода может являться клавиатурой и/или мышью и так далее. Устройство ввода не ограничивается любым конкретным способом ввода, но может быть исполнено, например, как виртуальная кнопка на сенсорном экране или как физическая кнопка на корпусе электронного устройства.
[00107] Исключительно в качестве примера, а не ограничения, в тех вариантах осуществления настоящего технического решения, где клиентское устройство 102 реализовано как беспроводное устройство связи (например, смартфон), пользовательское устройство ввода может быть реализовано как пользовательское устройство ввода на основе интерференции света. Устройство пользовательского ввода в одном примере является устройством восприятия движения пальца/объекта, для которого пользователь осуществляет жест и/или на которое нажимает пальцем. Устройство пользовательского ввода может идентифицировать/отслеживать жест и/или определять положение пальца пользователя на устройстве пользовательского ввода. В тех случаях, когда пользовательское устройство ввода выполняется как пользовательское устройство ввода на основе интерференции света, например, сенсорный экран или мультисенсорный экран, пользовательское устройство ввода может дополнительно выполнять функции экрана (не изображено).
[00108] Пользовательское устройство ввода функционально соединено с процессором 108 и передает вводные сигналы (и выходные сигналы, когда оно функционирует как экран) на основе различных форм пользовательского ввода для обработки и анализа процессором 108.
[00109] Клиентское устройство 102 дополнительно включает в себя носитель 104 информации, также упоминаемый как локальная память 104. Локальная память 104 может включать в себя любой тип медиа, включая без ограничения ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), твердотельные накопители, накопители на магнитной ленте и т.д. В общем случае задачей локальной памяти 104 является хранение машиночитаемых инструкций, а также других данных.
[00110] Клиентское устройство 102 может включать в себя экран. Экран может быть жидкокристаллическим дисплеем (LCD), светодиодным дисплеем (LED), дисплеем на основе интерферометрической модуляции (IMOD) или дисплеем на основе любой другой подходящей технологии. Экран в общем случае выполнен с возможностью отображать графический интерфейс пользователя (GUI), который предоставляет простой в использовании графический интерфейс между пользователем клиентского устройства 102 и операционной системой или приложением(ями), установленными на клиентском устройстве 102. В общем случае графический интерфейс пользователя (GUI) представляет программы, файлы и операционные опции с помощью графических изображений. Экран также в общем случае выполнен с возможностью отображать другую информацию, например, пользовательские данные и веб-ресурсы. Экран также может представлять собой сенсорное устройство, например, сенсорный экран. Сенсорный экран является экраном, который определяет наличие и местоположение касаний пользователя. Экран также может быть экраном мультисенсорной или дуальной сенсорной модели, который может идентифицировать наличие, местоположение и движение сенсорного ввода. В тех случаях, когда экран реализован в виде сенсорного устройства, например, сенсорного экрана или мультисенсорного экрана, он может выполнять функции пользовательского устройства ввода.
[00111] Экран может быть функционально связан с процессором 108 и получает сигналы от процессора 108. В случаях, когда экран реализован в виде сенсорного устройства, например, сенсорного экрана или мультисенсорного экрана, экран может также передавать сигналы ввода на основе различных форм пользовательского ввода на обработку и анализ процессору 108.[00112] Клиентское устройство 102 также включает в себя вышеупомянутый процессор 108. Процессор 108 выполнен с возможностью реализовать различные операции в соответствии с машиночитаемым программным кодом. Процессор 108 функционально связан с устройством пользовательского ввода, локальной памятью 104 и экраном. Процессор 108 выполнен с возможностью сохранять или иметь доступ к машиночитаемым инструкциям, выполнение которых инициирует реализацию процессором различных процедур. В качестве неограничивающего примера процессор 118, описанный здесь, может получать доступ к машиночитаемым инструкциям, которые, при их исполнении, могут инициировать реализацию процессором 108: отображения информации на экране; получения от пользователя клиентского устройства 112 с помощью устройства пользовательского ввода запроса на отрисовку графических объектов.
[00113] Локальная память 104 выполнена с возможностью хранить данные, включая машиночитаемые инструкции и другие данные, включая данные графических объектов любого типа. В некоторых вариантах осуществления настоящего технического решения локальная память 104 может хранить по меньшей мере часть данных в базе данных 106. В других вариантах осуществления настоящего технического решения локальная память 104 может хранить по меньшей мере часть данных в любом наборе данных, который отличается от базы данных.
[00114] Данные, сохраненные в локальной памяти 104 (и, более конкретно по меньшей мере частично в некоторых вариантах осуществления настоящего технического решения в базе данных) могут включать в себя графические объекты любого типа. На Фиг. 2 и Фиг. 3 изображены примеры графических объектов, не ограничивающие объем настоящего технического решения.
[00115] Локальная память 104 может хранить машиночитаемые инструкции, которые управляют обновлениями, заполнением и модификациями базы данных и/или другими наборами данных. Более конкретно, машиночитаемые инструкции, хранящиеся в локальной памяти 104, позволяют клиентскому устройству 102 получить (обновить) информацию относительно графических объектов, (например, от устройства ввода, или по сети передачи данных, и т.д.) и сохранить информацию о графических объектах, включая информацию об их соответствующих границах в базе данных и/или других наборов данных.
[00116] Машиночитаемые инструкции, сохраненные в локальной памяти 104, при их исполнении, могут инициировать осуществление процессором 108 тех же функций, что инициируют те машиночитаемые инструкции, которые хранятся на машиночитаемом носителе 104 информации сервера 102.
[00117] Клиентское устройство 102 может включать в себя, среди прочего, интерфейс сетевой передачи данных (например, модем, сетевую карту и так далее) для двусторонней связи по сети передачи данных. Клиентское устройство 102 может быть соединено с сетью передачи данных с помощью интерфейса сетевой передачи данных через линию передачи данных (не пронумерована). В некоторых вариантах осуществления настоящего технического решения, не ограничивающих его объем, сеть передачи данных может представлять собой Интернет. В других вариантах осуществления настоящего технического решения сеть передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.Клиентское устройство 102 может устанавливать соединения по сети передачи данных с другими устройствами, например, с серверами. Более конкретно, клиентское устройство 102 может устанавливать соединения и взаимодействовать с сервером 102.
[00118] Реализация линии передачи данных не ограничена и будет зависеть от того, какое клиентское устройство 102 используется. В качестве примера, но не ограничения, в данных вариантах осуществления настоящего технического решения в случаях, когда клиентское устройство 102 представляет собой беспроводное устройство связи (например, смартфон), линия передачи данных представляет собой беспроводную сеть передачи данных (например, среди прочего, линия передачи данных 3G, линия передачи данных 4G, беспроводной интернет Wireless Fidelity или коротко WiFi®, Bluetooth® и т.п.). В тех примерах, где клиентское устройство 102 представляет собой портативный компьютер, линия передачи данных может быть как беспроводной (беспроводной интернет Wireless Fidelity или коротко WiFi®, Bluetooth® и т.п.) так и проводной (соединение на основе сети Ethernet).
[00119] Важно иметь в виду, что варианты реализации клиентского устройства 102, линии передачи данных и сети передачи данных приведены исключительно для наглядности. Таким образом, специалисты в данной области техники смогут понять подробности других конкретных вариантов осуществления клиентского устройства 102, линии передачи данных и сети передачи данных. То есть представленные здесь примеры не ограничивают объем настоящего технического решения.
[00120] На Фиг. 11 изображен компьютерный способ 1200 сохранения данных для отрисовки графического объекта 200, причем графический объект 200 обладает немонотонной границей, определяемой своими стандартными координатами.
[00121] Сохранение графических объектов в стандартной системе координат, например, в декартовой системе координат, может потребовать значительных ресурсов от вычислительного устройства.
[00122] В общем случае этапы способа 1200 предполагают разделение немонотонных границ графического объекта 200 на монотонные фрагменты границ. Чтобы быть монотонным, фрагмент границы должен быть относительно прямым. Анализ взаимного расположения пересекающих линий дает возможность определить точки, в которых процессор 108 может разделить границу на фрагменты для создания монотонных фрагментов границы. После создания монотонных фрагментов границы процессор 108 может создать соответствующие базовые линии для соответствующих монотонных фрагментов границы, и создать карту высот для фрагментов границ.
[00123] Этап 1202 - на основе стандартных координат создание границы графического объекта 200
[00124] Способ 1200 начинается на этапе 1202, на котором процессор 104 извлекает из носителя 104 информации стандартные координаты границы графического объекта 200 и на основе извлеченных стандартных координат создает границу графического объекта 200.
[00125] Затем способ 1100 переходит к этапу 1104.
[00126] Этап 1204 - применение к границе графического объекта 200 на предварительно определенных интервалах по меньшей мере двух пересекающих элементов, причем каждый пересекающий элемент пересекает границу графического объекта 200 в соответствующей точке пересечения под одинаковым углом пересечения [00127] Далее, на этапе 1204 процессор 108 применяет к границам графического объекта 200 пересекающие элементы 402, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438 на предварительно определенных интервалах. Пересекающие элементы 402, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438 пересекают границу графического объекта 200 в точках пересечения 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 478, 480, 482, 484, 486, 488. В этом варианте осуществления настоящего технического решения предварительно определенные интервалы составляют 4 пикселя. В других вариантах осуществления настоящего технического решения предварительно определенные интервалы могут быть больше или меньше, и они могут быть выражены в любых подходящих измерительных единицах.
[00128] В этом варианте осуществления настоящего технического решения пересекающие элементы 402, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438 являются пересекающими линиями. Однако в других вариантах осуществления настоящего технического решения пересекающие элементы могут быть иными объектами, например, пересекающими плоскостями.
[00129] В этом варианте осуществления настоящего технического решения каждая пересекающая линия 402-438 пересекает границу графического объекта 200 в соответствующих точках пересечения 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 478, 480, 482, 484, 486, 488 под одним и тем же углом пересечения, который равен 90 градусов. Когда соответствующая часть границы графического объекта 200 является кривой линией, угол между пересекающей линией и границей определяется как угол между пересекающей линией и воображаемой касательной к границе графического объекта 200 в соответствующей точке пересечения линией.
[00130] В альтернативных вариантах осуществления настоящего технического решения углы пересечения могут быть любыми углами, находящимся в диапазоне углов более нуля градусов и менее 180 градусов, и все углы пересечения одинаковы.
[00131] Этап 1206 - измерение углов между пересекающими элементами и, в ответ на то, что по меньшей мере один угол между двумя частными пересекающими элементами превышает предварительно определенный порог, разделение границы на фрагменты границы в точках, расположенных в соответствующем интервале, определенном этими частными пересекающими элементами
[00132] В этом варианте осуществления настоящего технического решения на этапе 1206 процессор 108 измеряет углы между парами последовательных пересекающих линий, начиная с пары 402-404, 404-406 и так далее, и заканчивая парой 436-438. Другими словами, процессор 108 измеряет углы, начиная с угла 502 и заканчивая углом 536.
[00133] Порог может быть предварительно определен таким образом, что, если угол между двумя пересекающими линиями превышает предварительно определенное значение, например, 40 градусов, процессор 108 может разделить границу 200 на фрагменты границы в одной точке пересечения в пределах интервала между этими двумя пересекающими линиями. Процессор 108 может определить, какие из углов 502-536 превышают предварительно определенный порог.
[00134] Например, процессор 108 определяет, что существует четыре угла между четырьмя парами последовательных пересекающих линий (404-406, 476-478, 484-486, 486-488), которые превышают предварительно определенный порог в 40 градусов: угол 504 (59 градусов), угол 256 (46 градусов), угол 534 (85 градусов) и угол 536 (70 градусов). Процессор 108 далее определяет, что все другие углы между парами последовательных пересекающих линий не превышают предварительно определенный порог в 40 градусов.
[00135] Затем процессор 108 может разделить границу графического объекта 200 в точках, расположенных соответственно между пересекающими линиями 404 и 406, 476 и 478, 484 и 486, 486 и 488. Точное положение разделяющей точки в интервале не является важным. В этом варианте осуществления настоящего технического решения разделяющие точки будут совпадать с некоторыми точками пересечения. В этом варианте осуществления настоящего технического решения процессор 108 делит границу так: в точке 456, в точке 476, в точке 486 (для обоих углов: 534 и 536). В других вариантах осуществления настоящего технического решения разделяющие точки не обязательно совпадают с точками пересечения. Разделяющие точки могут быть в любом месте между разделяющими точками, включая сами точки пересечения.
[00136] В итоге создаются четыре фрагмента границы: между точками 452 и 456, 456 и 476, 476 и 486, 486 и 488.
[00137] Затем, в этом варианте осуществления настоящего технического решения процессор 108 измеряет в каждом фрагменте границы углы между парами пересекающих линий, не являющихся последовательными пересекающими линиями, для определения того, не превышают ли углы предварительно определенный порог в 40 градусов. Процессор 108 затем может определить, что сумма углов 514 и 516 превышает 40 градусов (другими словами, угол между пересекающими линиями 414 и 418 превышает предварительно определенный порог в 40 градусов). В ответ на это процессор 108 может разделить фрагмент границы (линию, соединяющую точки 456-476) на два фрагмента границы в любой точке между двумя соответствующими не являющимися последовательными пересекающими линиями.
[00138] В итоге создаются пять фрагментов границы: между точками 452 и 456, 456 и 466, 466 и 476, 476 и 486, 486 и 488.
[00139] Резюмируя, в этом варианте осуществления настоящего технического решения этапы измерения множества углов между пересекающими элементами и разделения границ на фрагменты границы осуществляются последовательно и периодически: (i) измерение множества углов между последовательными пересекающими элементами; (ii) разделение границы на фрагменты границы; (iii) измерение углов между не являющимися последовательными пересекающими элементами в пределах фрагментов границы; (iv) разделение границы (фрагментов) на последующие фрагменты, пока не будут получены монотонные фрагменты. Все измерения и разделения осуществляются в этом техническом решении перед созданием базовых линий для соответствующих фрагментов границы.
[00140] Затем способ 1200 переходит к этапу 1208.
[00141] Этап 1208 - создание базовых линий для каждого созданного монотонного фрагмента границы для получения проекций на каждую базовую линию с каждого фрагмента границы соответственно таким образом, что каждый фрагмент границы является монотонным относительно его соответствующей базовой линии, и сохранение множества координат базовых линий
[00142] На этапе 1208 процессор 108 создает для всех пяти фрагментов границы, определенных точками 452 и 456, 456 и 466, 466 и 476, 476 и 486, 486 и 488, пять соответствующих базовых линий 602, 604, 606, 608, 610. Создание базовых линий было описано выше с учетом Фиг. 6, т.е. для всех монотонных фрагментов.
[00143] Затем способ переходит к этапу 1210.
[00144] Этап 1210 - проецирование высот с каждого из множества фрагментов границы на их соответствующие базовые линии, причем проецирование осуществляется с предварительно определенным шагом, начиная от начала соответствующего фрагмента границы и заканчивая концом соответствующего фрагмента границы
[00145] На этапе 1210 процессор 108 проецирует высоты с каждого из множества фрагментов границы на их соответствующие базовые линии, причем проецирование осуществляется с предварительно определенным шагом, начиная от начала соответствующего фрагмента границы и заканчивая концом соответствующего фрагмента границы. Проецирование высот было описано выше на примере фрагмента границы, определяемого точками 456 и 466 на Фиг. 7. Проецирование высот с другого фрагмента границы на их соответствующие базовые линии может быть осуществлено аналогично.
[00146] В этом варианте осуществления настоящего технического решения предварительно определенный шаг между высотами одинаков, вне зависимости от того, на какую базовую линию происходит проецирование высот.
[00147] Затем способ 1200 переходит к этапу 1212.
[00148] Этап 1212 - определение значений высот, причем каждое значение высот представляет расстояние между соответствующей базовой линией и соответствующей точкой на соответствующем фрагменте границы, причем значения высот нужны для создания карт высот фрагментов границы
[00149] На этапе 1212 процессор определяет значения высот, причем каждое значение высот представляет расстояние между соответствующей базовой линией и соответствующей точкой на соответствующем фрагменте границы, причем значения высот нужны для создания карт высот фрагментов границы. Процесс определения высот на примере высот, спроецированных на базовую линию 604, был описан с учетом Фиг. 8. Аналогично процессор 108 определяет значения высот, спроецированных на каждую базовую линию (602, 604, 606, 608, 610).
[00150] Этап 1214 - сохранение данных для отрисовки фрагмента границы как совокупности: множества координат базовых линий и шага высот, причем шаг высот указывает на интервалы между проекциями высот, а также последовательности значений высот в связи с соответствующей базовой линией
[00151] На этапе 1214 процессор 108 сохраняет на носителе 104 информации отдельно для каждого фрагмента границы: координаты соответствующей базовой линии, шаг высот и последовательность значений высот в связи с соответствующей базовой линией.
[00152] Например, процессор 108 может хранить на носителе 104 информации стандартные координаты базовой линии 604, шаг высот, определяющий интервал между каждыми двумя высотами 802 и последовательность значений высот (8, +7, +6, +4, +3, +3, +3, +4 и так далее, как изображено на Фиг. 8). Значения высот связаны с базовой линией 604. Все эти данные могут затем быть использованы по мере нужды в создании фрагмента границы, расположенного между точками 456 и 466 с помощью использования карты высот вместо стандартных координат.
[00153] Аналогично процессор 108 сохраняет на носителе 104 информации отдельно: координаты каждой базовой линии, шаг высот и последовательность значений высот в связи с соответствующей базовой линией. Все эти данные могут затем быть использованы по мере нужды в создании границы графического объекта 200 с помощью использования карты высот вместо стандартных координат для создания последовательности фрагментов границы, которые, все вместе, могут представить полную границу графического объекта 200.
[00154] После создания карты высот для каждого фрагмента границы графического объекта 200 процессор 108 может удалить стандартные координаты графического объекта 200.
[00155] Затем способ 1200 завершается.
[00156] Практическое техническое использование описанного технического решения может заключаться в сбережении объемов памяти носителей информации компьютерного устройства, поскольку сохранение границ графических объектов как последовательностей карт высот может быть менее ресурсозатратным, чем сохранение границ графических объектов в некоторых стандартных системах координат.
[00157] Этапы способа 1200 объяснялись в том виде, в котором они могут быть выполнены на вычислительном устройстве 102, являющимся сервером 102 системы 100. Однако этапы способа 1200 могут быть выполнены на вычислительном устройстве 102, являющимся клиентским устройством 102 системы 100.
[00158] Таким образом, с одной точки зрения, варианты осуществления настоящего технического решения можно изложить следующим образом, структурированно, пронумерованными пунктами:
[00159] [Пункт 1] Компьютерный способ сохранения данных для отрисовки графического объекта (200), причем графический объект (200) обладает немонотонной границей, определяющейся стандартными координатами, и способ включает в себя:
(i) на основе стандартных координат создание границы графического объекта (200);
(ii) применение к границе графического объекта (200) на предварительно определенных интервалах по меньшей мере двух пересекающих элементов (402, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438), причем каждый пересекающий элемент (402, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438) пересекает границу графического объекта (200) в соответствующей точке (452, 454, 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 478, 480, 482, 484, 486, 488) пересечения под одинаковым углом пересечения;
(iii) измерение множества углов между пересекающими элементами (402, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438) и, в ответ на то, что по меньшей мере один угол между двумя частными пересекающими элементами (402, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438) превышает предварительно определенный порог, разделение границы на фрагменты границы в точках (456, 466, 476, 486), расположенных в соответствующем интервале, определенном этими частными пересекающими элементами (402, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438) для создания по меньшей мере одного монотонного фрагмента границы;
(iv) создание базовых линий (602, 604, 606, 608, 610) для каждого из по меньшей мере одного созданного монотонного фрагмента границы для получения проекций на каждую базовую линию (602, 604, 606, 608, 610) с каждого фрагмента границы соответственно и сохранение координат базовых линий;
(v) проецирование высот (802) с каждого из по меньшей мере одного монотонного фрагмента границы на их соответствующие базовые линии (602, 604, 606, 608, 610), причем проецирование осуществляется с предварительном определенным шагом высот, начиная от начала соответствующего монотонного фрагмента границы и заканчивая концом соответствующего монотонного фрагмента границы;
(vi) определение значений высот, причем каждое значение высот представляет расстояние между соответствующей базовой линией (602, 604, 606, 608, 610) и соответствующей точкой на соответствующем монотонном фрагменте границы, причем значения высот нужны для создания карт высот монотонных фрагментов границы;
(vii) сохранение данных для отрисовки монотонного фрагмента границы как совокупности:
координат базовых линий, и
шага высот,
а также последовательности значений высот в связи с соответствующей базовой линией (602, 604, 606, 608, 610).
[00160] [Пункт 2] Способ по п. 1, в котором этапы (i) измерения множества углов между пересекающими элементами (402, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438) и (ii) разделения границы на фрагменты границы осуществляются последовательно и периодически перед созданием базовых линий (602, 604, 606, 608, 610) для по меньшей мере для одного монотонного фрагмента границ.
[00161] [Пункт 3] Способ по любому из пп. 1-2, в котором создание границы графического объекта (200) является созданием линии.
[00162] [Пункт 4] Способ по любому из пп. 1-3, в котором применение к границе графического объекта (200) по меньшей мере двух пересекающих элементов (402, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438) является применением по меньшей мере двух пересекающих линий (402, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438).
[00163] [Пункт 5] Способ по любому из пп. 1-4, в котором создание базовой линии (602, 604, 606, 608, 610) выполняется с помощью проведения двух параллельных линий (6020 и 6022, 6040 и 6042, 6060 и 6062, 6080 и 6082, 6100 и 6102) таким образом, что одна из двух параллельных линий пересекает начало фрагмента границы, а другая параллельная линия пересекает конец фрагмента границы, а базовая линия (602, 604, 606, 608, 610) создается как интервал, соединяющий эти две параллельные линии (6020 и 6022, 6040 и 6042, 6060 и 6062, 6080 и 6082, 6100 и 6102) и являющийся перпендикулярным обеим этим параллельным линиям (6020 и 6022, 6040 и 6042, 6060 и 6062, 6080 и 6082, 6100 и 6102).
[00164] [Пункт 6] Способ по любому из пп. 1-5, в котором два пересекающих элемента (402, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438) на этапе разделения границы на фрагменты границы являются последовательными пересекающими элементами, и способ дополнительно включает в себя разделение указанных фрагментов границы на меньшие фрагменты до тех пор, пока каждый угол между каждыми двумя не являющимися последовательными пересекающими элементами (402, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438) в пределах соответствующего меньшего фрагмента не окажется меньше, чем предварительно определенный порог.
[00165] [Пункт 7] Способ по любому из пп. 1-6, в котором значения высот являются по меньшей мере одним из: положительными значениями, нулевым значением, отрицательными значениями.
[00166] [Пункт 8] Способ по любому из пп. 1-7, в котором каждый угол пересечения между каждым пересекающим элементом (402, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438) и границей графического объекта (200) в каждой соответствующей точке (452, 454, 456, 458, 460, 462, 464, 464, 466, 468, 470, 472, 474, 476, 478,480, 482, 484, 486, 488) пересечения равен 90 градусов.
[00167] [Пункт 9] Вычислительное устройство (102) сохранения данных для отрисовки графического объекта (200), графический объект (200) обладает немонотонными границами, определенными своими стандартными координатами; вычислительное устройство (102) включает в себя процессор (108) и носитель (104) информации, на котором хранятся машиночитаемые инструкции, которые, при их исполнении, инициируют выполнение процессором (108) способа по любому из пп. 1-8.
[00168] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего технического решения ограничен только объемом прилагаемой формулы изобретения.
Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении возможности сохранения границ графических объектов в виде карт высот для графических объектов, обладающих немонотонными границами. Предлагается компьютерный способ сохранения данных для отрисовки графического объекта, обладающего немонотонной границей, который включает создание границы графического объекта; применение к границе графического объекта на предварительно определенных интервалах пересекающих элементов, пересекающих границу графического объекта в точках пересечения под одинаковым углом пересечения; измерение множества углов между пересекающими элементами; в ответ на то, что по меньшей мере один угол между двумя частными пересекающими элементами превышает предварительно определенный порог, разделение границы на фрагменты границы; создание базовых линий для каждого созданного фрагмента границы; проецирование высот с каждого из множества фрагментов границы на их соответствующие базовые линии с предварительным определенным шагом высот; определение значений высот; сохранение данных для отрисовки фрагмента границы как совокупности: множества координат базовых линий, шага высот, а также последовательности значений высот в связи с соответствующей базовой линией. 2 н. и 12 з.п. ф-лы, 11 ил.
1. Компьютерный способ сохранения данных для отрисовки графического объекта, причем графический объект обладает немонотонной границей, определяющейся стандартными координатами, и способ включает в себя:
на основе стандартных координат создание границы графического объекта;
применение к границе графического объекта на предварительно определенных интервалах по меньшей мере двух пересекающих элементов, являющихся линиями, причем каждый пересекающий элемент пересекает границу графического объекта в соответствующей точке пересечения под одинаковым углом пересечения;
измерение множества углов между пересекающими элементами и, в ответ на то, что по меньшей мере один угол из множества углов между двумя частными пересекающими элементами превышает предварительно определенный порог, разделение границы на фрагменты границы в точках, расположенных в соответствующем интервале, определенном этими частными двумя пересекающими элементами для создания по меньшей мере одного монотонного фрагмента границы;
создание базовых линий для каждого созданного монотонного фрагмента границы для получения проекций на каждую базовую линию с каждого фрагмента границы соответственно и сохранение координат базовых линий;
проецирование высот с каждого монотонного фрагмента границы на их соответствующие базовые линии, причем проецирование осуществляется с предварительным определенным шагом высот, начиная от начала соответствующего монотонного фрагмента границы и заканчивая концом соответствующего монотонного фрагмента границы;
определение значений высот, причем каждое значение высот представляет расстояние между соответствующей базовой линией и соответствующей точкой на соответствующем фрагменте границы, причем значения высот нужны для создания карт высот фрагментов границы;
сохранение данных для отрисовки монотонного фрагмента границы как совокупности:
координат базовых линий и
шага высот,
а также последовательности значений высот в связи с соответствующей базовой линией.
2. Способ по п. 1, в котором этапы измерения множества углов между пересекающими элементами и разделения границы на фрагменты границы осуществляются последовательно и периодически перед созданием базовых линий для по меньшей мере для одного монотонного фрагмента границ.
3. Способ по п. 1, в котором создание границы графического объекта является созданием линии.
4. Способ по п. 1, в котором создание базовой линии выполняется с помощью проведения двух параллельных линий таким образом, что одна из двух параллельных линий пересекает начало фрагмента границы, а другая параллельная линия пересекает конец фрагмента границы, а базовая линия создается как интервал, соединяющий эти две параллельные линии и являющийся перпендикулярным обеим этим параллельным линиям.
5. Способ по п. 1, в котором два пересекающих элемента на этапе разделения границы на фрагменты границы являются последовательными пересекающими элементами, причем способ дополнительно включает в себя разделение указанных фрагментов границы на меньшие фрагменты до тех пор, пока каждый угол между каждыми двумя не являющимися последовательными пересекающими элементами в пределах соответствующего меньшего фрагмента не окажется меньше, чем предварительно определенный порог.
6. Способ по п. 1, в котором значения высот являются по меньшей мере одним из: положительными значениями, нулевым значением, отрицательными значениями.
7. Способ по п. 1, в котором каждый угол пересечения между каждым пересекающим элементом и границей графического объекта в каждой соответствующей точке пересечения равен 90 градусов.
8. Вычислительное устройство сохранения данных для отрисовки графического объекта, обладающего немонотонными границами, определенными стандартными координатами; причем вычислительное устройство включает в себя процессор и носитель информации, на котором хранятся машиночитаемые инструкции, которые, при их исполнении, инициируют выполнение процессором:
на основе стандартных координат создания границы графического объекта;
применения к границе графического объекта на предварительно определенных интервалах по меньшей мере двух пересекающих элементов, являющихся линиями, причем каждый пересекающий элемент пересекает границу графического объекта в соответствующей точке пересечения под одинаковым углом пересечения;
измерения множества углов между пересекающими элементами и, в ответ на то, что по меньшей мере один угол из множества углов между двумя частными пересекающими элементами превышает предварительно определенный порог, разделения границы на фрагменты границы в точках, расположенных в соответствующем интервале, определенном этими частными двумя пересекающими элементами для создания по меньшей мере одного монотонного фрагмента границы;
создания базовых линий для каждого созданного монотонного фрагмента границы для получения проекций на каждую базовую линию с каждого фрагмента границы соответственно и сохранения координат базовых линий;
проецирования высот с каждого монотонного фрагмента границы на их соответствующие базовые линии, причем проецирование осуществляется с предварительным определенным шагом высот, начиная от начала соответствующего монотонного фрагмента границы и заканчивая концом соответствующего монотонного фрагмента границы;
определения значений высот, причем каждое значение высот представляет расстояние между соответствующей базовой линией и соответствующей точкой на соответствующем монотонном фрагменте границы, причем значения высот нужны для создания карт высот монотонных фрагментов границы;
сохранения данных для отрисовки монотонного фрагмента границы как совокупности:
координат базовых линий и
шага высот,
а также последовательности значений высот в связи с соответствующей базовой линией.
9. Вычислительное устройство по п. 8, в котором процессор выполнен с возможностью перед созданием базовых линий по меньшей мере для одного монотонного фрагмента границ осуществлять последовательно и периодически этапы измерения множества углов между пересекающими элементами и разделения границы на фрагменты границы.
10. Вычислительное устройство по п. 8, в котором процессор выполнен с возможностью создания границы графического объекта, которая является созданием линии.
11. Вычислительное устройство по п. 8, в котором процессор выполнен с возможностью создавать базовую линию с помощью проведения двух параллельных линий таким образом, что одна из двух параллельных линий пересекает начало фрагмента границы, а другая параллельная линия пересекает конец фрагмента границы, и процессор выполнен с возможностью создавать базовую линию как интервал, соединяющий эти две параллельные линии и являющийся перпендикулярным обеим этим параллельным линиям.
12. Вычислительное устройство по п. 8, в котором процессор выполнен с возможностью применения к границе графического объекта на этапе разделения границы на фрагменты границы двух пересекающих элементов, являющихся последовательными пересекающими элементами, и в котором инструкции, при их исполнении процессором, дополнительно инициируют разделение процессором указанных фрагментов границы на меньшие фрагменты до тех пор, пока каждый угол между каждыми двумя не являющимися последовательными пересекающими элементами в пределах соответствующего меньшего фрагмента не окажется меньше, чем предварительно определенный порог.
13. Вычислительное устройство по п. 8, в котором процессор выполнен с возможностью определения значений высот, являющихся по меньшей мере одним из: положительными значениями, нулевым значением, отрицательными значениями.
14. Вычислительное устройство по п. 8, в котором процессор выполнен с возможностью применения к границе графического объекта пересекающих элементов так, что каждый угол пересечения между каждым пересекающим элементом и границей графического объекта в каждой соответствующей точке пересечения равен 90 градусов.
US 6441816 B1, 27.08.2002 | |||
US 7733352 B2, 08.06.2010 | |||
US 7133044 B2, 07.11.2006 | |||
G.D.J | |||
SMITH et al | |||
"Height estimation from vector fields of surface normals", опубл | |||
Способ гальванического снятия позолоты с серебряных изделий без заметного изменения их формы | 1923 |
|
SU12A1 |
СПОСОБ ПРЕОБРАЗОВАНИЯ РАСТРОВОГО ИЗОБРАЖЕНИЯ В МЕТАФАЙЛ | 2011 |
|
RU2469400C1 |
Авторы
Даты
2017-12-07—Публикация
2015-11-06—Подача