Способ и компьютерное устройство для создания симплифицированных границ графических объектов
METHOD AND COMPUTER DEVICE FOR CREATING SIMPLIFIED BORDERS OF GRAPHIC OBJECTS

Область техники
[0001] Настоящее техническое решение относится к способу и компьютерному устройству для создания симплифицированных границ графических объектов.
Уровень техники
[0002] В компьютерных технологиях широко распространено использование графических объектов. Графические объекты используются в графическом дизайне, компьютерных играх, картографических сервисах и во многих других областях. Машиночитаемые хранилища компьютерных устройств (и персональных устройств, и других устройств, таких как серверы поставщиков сервисов) могут хранить информацию, представляющую множество графических объектов, и двумерных, и трехмерных. Такая информация о графических объектах может быть использована для создания визуального представления графических объектов.
[0003] Часто существует необходимость симплификации границ графических объектов. Например, если пользователь уменьшает масштаб карты, контуры областей могут быть представлены в симплифицированном виде, некоторые кривые могут быть сглажены, или симплифицированы по-иному. Часто симплификация границ графических объектов осуществляется со стороны сервера. Сервер создает границы графических объектов и отправляет на клиентское устройство инструкции на отрисовку двух или нескольких симплифицированных графических объектов, например, двух областей карты. Получив созданные границы и инструкции, клиентские устройства отрисовывают границы объектов. Отрисовка границ объектов может быть ресурсозатратной. Следовательно, существует необходимость в дальнейшем развитии технологий, которые позволят экономить вычислительные ресурсы клиентских устройств.
Раскрытие
[0004] Задачей предлагаемого технического решения является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники.
[0005] Первым объектом настоящего технического решения является способ создания первой симплифицированной границы первого графического объекта и второй симплифицированной границы второго графического объекта. И первый графический объект, и второй графический объект имеют, соответственно, первую исходную границу и вторую исходную границу. Первая исходная граница и вторая исходная граница включают в себя изогнутые части границы, расположенные в непосредственной близости друг от друга. Способ выполняют на компьютерном устройстве. Способ включает в себя: применение разделительной сетки с ячейками к первому графическому объекту и ко второму графическому объекту таким образом, что первая исходная граница разделяется на множество исходных фрагментов первой исходной границы, причем по меньшей мере некоторые исходные фрагменты первой исходной границы являются исходными изогнутыми фрагментами, а вторая исходная граница разделяется на множество исходных фрагментов второй исходной границы, причем по меньшей мере некоторые исходные фрагменты второй исходной границы являются исходными изогнутыми фрагментами; привязку пересечений первой исходной границы и второй исходной границы к ячейкам; определение того, находятся ли по меньшей мере в одной ячейке фрагменты и первой исходной границы, и второй исходной границы; в ответ на то, что в первой ячейке находятся первый исходный изогнутый фрагмент первой исходной границы и второй исходный изогнутый фрагмент второй исходной границы, создание в первой ячейке первого симплифицированного изогнутого фрагмента и второго симплифицированного изогнутого фрагмента с помощью применения правила симплификации соответственно к первому исходному изогнутому фрагменту и ко второму исходному изогнутому фрагменту, сохраняя положение привязанных пересечений без изменений; определение того, схожи (от англ. similar) ли в пределах предварительно определенного порога разброса координаты первого симплифицированного изогнутого фрагмента и второго симплифицированного изогнутого фрагмента; в ответ на то, что координаты первого симплифицированного изогнутого фрагмента и второго симплифицированного изогнутого фрагмента схожи в пределах предварительно определенного порога разброса, создание первого набора инструкций отрисовки, причем первый набор инструкций отрисовки: связан с геометрией одного из: первого симплифицированного изогнутого фрагмента или второго симплифицированного изогнутого фрагмента, и предназначен для отрисовки общей симплифицированной изогнутой части, представляющей и первый симплифицированный изогнутый фрагмент, и второй симплифицированный изогнутый фрагмент.
[0006] В некоторых вариантах осуществления настоящего технического решения первый набор инструкций отрисовки дополнительно включает в себя инструкцию на отрисовку первой части первой симплифицированной границы первого графического объекта и второй части второй симплифицированной границы второго графического объекта, причем из состава первой части и второй части, соответственно, исключены первый симплифицированный изогнутый фрагмент и второй симплифицированный изогнутый фрагмент.
[0007] В некоторых вариантах осуществления настоящего технического решения первый набор инструкций отрисовки дополнительно включает в себя инструкции на использование, после отрисовки общей симплифицированной изогнутой части, представляющей и первый симплифицированный изогнутый фрагмент, и второй симплифицированный изогнутый фрагмент, таким образом отрисованной общей симплифицированной изогнутой части как двух идентичных частей границы для завершения первой части первой симплифицированной границы и для завершения второй части второй симплифицированной границы.
[0008] В некоторых вариантах осуществления настоящего технического решения в ответ на различие первого симплифицированного изогнутого фрагмента и второго симплифицированного изогнутого фрагмента, способ дополнительно включает в себя создание второго набора инструкций отрисовки для отрисовки первой симплифицированной границы первого графического объекта с использованием первого симплифицированного изогнутого фрагмента, и для отрисовки второй симплифицированной границы второго графического объекта с использованием второго симплифицированного изогнутого фрагмента.
[0009] В некоторых вариантах осуществления настоящего технического решения компьютерное устройство является сервером, и способ дополнительно включает в себя получение от клиентского устройства запроса на инструкции отрисовки для отрисовки первой симплифицированной границы первого графического объекта и второй симплифицированной границы второго графического объекта.
[0010] В некоторых вариантах осуществления настоящего технического решения способ дополнительно включает в себя отправку на клиентское устройство первого набора инструкций отрисовки, связанных с геометрией одного из: первого симплифицированного изогнутого фрагмента или второго симплифицированного изогнутого фрагмента, и предназначенных для отрисовки общей симплифицированной изогнутой части, представляющей и первый симплифицированный изогнутый фрагмент, и второй симплифицированный изогнутый фрагмент.
[0011] В некоторых вариантах осуществления настоящего технического решения первый набор инструкций отрисовки дополнительно включает в себя инструкции на отрисовку первой части первой симплифицированной границы первого графического объекта и второй части второй симплифицированной границы второго графического объекта, причем из состава первой части и второй части, соответственно, исключены первый симплифицированный изогнутый фрагмент и второй симплифицированный изогнутый фрагмент.
[0012] В некоторых вариантах осуществления настоящего технического решения, в которых компьютерное устройство является клиентским устройством с видеокартой и процессором, причем процессор функционально соединен с видеокартой, способ дополнительно включает в себя отправку процессором на видеокарту первого набора инструкций отрисовки для отрисовки первой симплифицированной границы первого графического объекта и для отрисовки второй симплифицированной границы второго графического объекта, причем инструкции связаны с геометрией одного из: первого симплифицированного изогнутого фрагмента или второго симплифицированного изогнутого фрагмента, и предназначены для отрисовки общей симплифицированной изогнутой части, представляющей и первый симплифицированный изогнутый фрагмент, и второй симплифицированный изогнутый фрагмент.
[0013] В некоторых вариантах осуществления настоящего технического решения первый графический объект и второй графический объект являются двумерными графическими объектами.
[0014] В некоторых вариантах осуществления настоящего технического решения привязка пересечений первой исходной границы и второй исходной границы к ячейкам является привязкой точек пересечения.
[0015] В некоторых вариантах осуществления настоящего технического решения разделительная сетка является двумерной решеткой.
[0016] В некоторых вариантах осуществления настоящего технического решения первый графический объект и второй графический объект являются трехмерными графическими объектами.
[0017] В некоторых вариантах осуществления настоящего технического решения разделительная сетка является трехмерной разделительной сеткой, а привязка пересечений первой исходной границы и второй исходной границы к ячейкам является привязкой линий пересечения.
[0018] В некоторых вариантах осуществления настоящего технического решения первый исходный изогнутый фрагмент включает в себя секции, последовательно соединяющие множество вершин первого исходного изогнутого фрагмента, а второй исходный изогнутый фрагмент включает в себя секции, последовательно соединяющие множество вершин второго исходного изогнутого фрагмента; а правило симплификации включает в себя уменьшение числа вершин первого исходного изогнутого фрагмента и числа вершин второго исходного изогнутого фрагмента.
[0019] В некоторых вариантах осуществления настоящего технического решения размер ячеек предварительно определен.
[0020] В некоторых вариантах осуществления настоящего технического решения, в которых предварительно определено минимальное число ячеек, в которых находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы, и в ответ на то, что число ячеек, в которых находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы, после применения разделительной сетки к первому графическому объекту и ко второму графическому объекту, не превышает указанного предварительно определенного числа, способ также включает в себя изменение размера ячеек до тех пор, пока число ячеек, в которых находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы, не достигнет предварительно определенного числа.
[0021] В некоторых вариантах осуществления настоящего технического решения, в которых определение того, схожи ли координаты первого симплифицированного изогнутого фрагмента и второго симплифицированного изогнутого фрагмента пределах предварительно определенного порога разброса, осуществляется с помощью определения любого пункта, выбранного из списка: координаты первого симплифицированного изогнутого фрагмента и координаты второго симплифицированного изогнутого фрагмента совпадают, или несоответствие между координатами первого симплифицированного изогнутого фрагмента и координатами второго симплифицированного изогнутого фрагмента находятся в пределах предварительно определенного максимального порога.
[0022] Другим объектом вариантов осуществления настоящей настоящего технического решения является компьютерное устройство для создания первой симплифицированной границы первого графического объекта и второй симплифицированной границы второго графического объекта. И первый графический объект, и второй графический объект имеют, соответственно, первую исходную границу и вторую исходную границу. Первая исходная граница и вторая исходная граница включают в себя изогнутые части границы, расположенные в непосредственной близости друг от друга. Компьютерное устройство включает в себя процессор. Компьютерное устройство также включает в себя носитель информации. Носитель информации хранит машиночитаемые инструкции. Машиночитаемые инструкции, при их исполнении, инициируют осуществление процессором: применения разделительной сетки с ячейками к первому графическому объекту и ко второму графическому объекту таким образом, что первая исходная граница разделяется на множество исходных фрагментов первой исходной границы, причем по меньшей мере некоторые исходные фрагменты первой исходной границы являются исходными изогнутыми фрагментами, а вторая исходная граница разделяется на множество исходных фрагментов второй исходной границы, причем по меньшей мере некоторые исходные фрагменты второй исходной границы являются исходными изогнутыми фрагментами; привязки пересечений первой исходной границы и второй исходной границы к ячейкам; определения того, находятся ли по меньшей мере в одной ячейке фрагменты и первой исходной границы, и второй исходной границы; в ответ на то, что в первой ячейке находятся первый исходный изогнутый фрагмент первой исходной границы и второй исходный изогнутый фрагмент второй исходной границы, создания в первой ячейке первого симплифицированного изогнутого фрагмента и второго симплифицированного изогнутого фрагмента с помощью применения правила симплификации соответственно к первому исходному изогнутому фрагменту и ко второму исходному изогнутому фрагменту, сохраняя положение привязанных пересечений без изменений; определения того, схожи ли в пределах предварительно определенного порога разброса координаты первого симплифицированного изогнутого фрагмента и второго симплифицированного изогнутого фрагмента; в ответ на то, что координаты первого симплифицированного изогнутого фрагмента и второго симплифицированного изогнутого фрагмента схожи в пределах предварительно определенного порога разброса, создания первого набора инструкций отрисовки, причем первый набор инструкций отрисовки: связан с геометрией одного из: первого симплифицированного изогнутого фрагмента или второго симплифицированного изогнутого фрагмента, и предназначен для отрисовки общей симплифицированной изогнутой части, представляющей и первый симплифицированный изогнутый фрагмент, и второй симплифицированный изогнутый фрагмент.
[0023] В некоторых вариантах осуществления компьютерного устройства первый набор инструкций отрисовки дополнительно включает в себя инструкцию на отрисовку первой части первой симплифицированной границы первого графического объекта и второй части второй симплифицированной границы второго графического объекта, причем из состава первой части и второй части, соответственно, исключены первый симплифицированный изогнутый фрагмент и второй симплифицированный изогнутый фрагмент.
[0024] В некоторых вариантах осуществления компьютерного устройства первый набор инструкций отрисовки дополнительно включает в себя инструкции на использование, после отрисовки общей симплифицированной изогнутой части, представляющей и первый симплифицированный изогнутый фрагмент, и второй симплифицированный изогнутый фрагмент, таким образом, отрисованной общей симплифицированной изогнутой части как двух идентичных частей границы для завершения первой части первой симплифицированной границы и для завершения второй части второй симплифицированной границы.
[0025] В некоторых вариантах осуществления компьютерного устройства в ответ на различие первого симплифицированного изогнутого фрагмента и второго симплифицированного изогнутого фрагмента, машиночитаемые инструкции также инициируют осуществление процессором создания второго набора инструкций отрисовки для отрисовки первой симплифицированной границы первого графического объекта с использованием первого симплифицированного изогнутого фрагмента, и для отрисовки второй симплифицированной границы второго графического объекта с использованием второго симплифицированного изогнутого фрагмента.
[0026] В некоторых вариантах осуществления компьютерного устройства компьютерное устройство является сервером, и машиночитаемые инструкции также инициируют осуществление процессором получения от клиентского устройства запроса на инструкции отрисовки для отрисовки первой симплифицированной границы первого графического объекта и второй симплифицированной границы второго графического объекта.
[0027] В некоторых вариантах осуществления компьютерного устройства машиночитаемые инструкции также инициируют осуществление процессором отправки на клиентское устройство первого набора инструкций отрисовки, связанных с геометрией одного из: первого симплифицированного изогнутого фрагмента или второго симплифицированного изогнутого фрагмента, и предназначенных для отрисовки общей симплифицированной изогнутой части, представляющей и первый симплифицированный изогнутый фрагмент, и второй симплифицированный изогнутый фрагмент.
[0028] В некоторых вариантах осуществления компьютерного устройства первый набор инструкций отрисовки также включает в себя инструкции на отрисовку первой части первой симплифицированной границы первого графического объекта и второй части второй симплифицированной границы второго графического объекта, причем из состава первой части и второй части, соответственно, исключены первый симплифицированный изогнутый фрагмент и второй симплифицированный изогнутый фрагмент.
[0029] В некоторых вариантах осуществления компьютерного устройства, в которых компьютерное устройство является клиентским устройством, включающим в себя видеокарту и процессор, причем процессор функционально соединен с видеокартой, машиночитаемые инструкции также инициируют осуществление процессором отправки на видеокарту первого набора инструкций отрисовки для отрисовки первой симплифицированной границы первого графического объекта и для отрисовки второй симплифицированной границы второго графического объекта, причем инструкции связаны с геометрией одного из: первого симплифицированного изогнутого фрагмента или второго симплифицированного изогнутого фрагмента, и предназначены для отрисовки общей симплифицированной изогнутой части, представляющей и первый симплифицированный изогнутый фрагмент, и второй симплифицированный изогнутый фрагмент.
[0030] В некоторых вариантах осуществления компьютерного устройства первый графический объект и второй графический объект являются двумерными графическими объектами.
[0031] В некоторых вариантах осуществления компьютерного устройства привязка пересечений первой исходной границы и второй исходной границы к ячейкам является привязкой точек пересечения.
[0032] В некоторых вариантах осуществления компьютерного устройства разделительная сетка является двумерной решеткой.
[0033] В некоторых вариантах осуществления компьютерного устройства первый графический объект и второй графический объект являются трехмерными графическими объектами.
[0034] В некоторых вариантах осуществления компьютерного устройства разделительная сетка является трехмерной разделительной сеткой, а привязка пересечений первой исходной границы и второй исходной границы к ячейкам является привязкой линий пересечения.
[0035] В некоторых вариантах осуществления компьютерного устройства первый исходный изогнутый фрагмент включает в себя секции, последовательно соединяющие множество вершин первого исходного изогнутого фрагмента, а второй исходный изогнутый фрагмент включает в себя секции, последовательно соединяющие множество вершин второго исходного изогнутого фрагмента; а правило симплификации включает в себя уменьшение числа вершин первого исходного изогнутого фрагмента и числа вершин второго исходного изогнутого фрагмента.
[0036] В некоторых вариантах осуществления компьютерного устройства размер ячеек предварительно определен.
[0037] В некоторых вариантах осуществления компьютерного устройства, в которых предварительно определено минимальное число ячеек, в которых находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы, и в ответ на то, что число ячеек, в которых находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы, после применения разделительной сетки к первому графическому объекту и ко второму графическому объекту, не превышает указанного предварительно определенного числа, машиночитаемые инструкции также инициируют осуществление процессором изменения размера ячеек до тех пор, пока число ячеек, в которых находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы, не достигнет предварительно определенного числа.
[0038] В некоторых вариантах осуществления компьютерного устройства, для определение того, схожи ли координаты первого симплифицированного изогнутого фрагмента и второго симплифицированного изогнутого фрагмента пределах предварительно определенного порога разброса, машиночитаемые инструкции также инициируют осуществление процессором определения любого пункта, выбранного из списка: координаты первого симплифицированного изогнутого фрагмента и координаты второго симплифицированного изогнутого фрагмента совпадают, или несоответствие между координатами первого симплифицированного изогнутого фрагмента и координатами второго симплифицированного изогнутого фрагмента находятся в пределах предварительно определенного максимального порога.
[0039] В контексте настоящего описания «сервер», если конкретно не указано иное, подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данного технического решения. В контексте настоящей технического решения использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами; оба варианта включены в выражение «по меньшей мере один сервер».
[0040] В контексте настоящего описания, если конкретно не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, выполняющем процесс, на котором хранится или используется информация, хранящаяся в базе данных, или же база данных может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.
[0041] В контексте настоящего описания, если конкретно не указано иное, слово «координаты» подразумевает под собой расположение точек и/или линий, или тому подобного, в подходящих системах отсчета. Системы отсчета могут являться, например, числами и/или любыми другими символами, которые используются для определения расположения точки, линиями (включая кривые) или плоскостями в пространстве данного измерения относительно системы линий (осей) или другими неподвижными системами отсчета.
[0042] В контексте настоящего описания, если конкретно не указано иное, «информация» включает в себя любую информацию любого типа, включая информацию, которую можно хранить в базе данных. Таким образом, информация включает в себя, среди прочего, данные (картографические данные, данные о местоположении, цифровые данные и т.д.), аудиовизуальные произведения (фотографии, видео, звукозаписи, презентации и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.
[0043] В контексте настоящего описания, если конкретно не указано иное, «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).
[0044] В контексте настоящего описания, если конкретно не указано иное, термин «носитель информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.
[0045] В контексте настоящего описания, если конкретно не указано иное, слова «первый», «второй», «третий» и и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной передачи данных между этими существительными. Так, например, следует иметь в виду, что использование терминов «первая исходная граница» и «третья исходная граница» не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) исходных границ / между исходными границами, равно как и их использование (само по себе) не предполагает, что некая «вторая исходная граница» обязательно должна существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание «первого» элемента и «второго» элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, «первый» элемент и «второй» элемент могут являться одним и тем же элементом, а в других случаях они могут являться разными элементами.
[0046] В контексте настоящего описания, если конкретно не указано иное, выражение «графический объект» подразумевает под собой любую графическую фигуру, которая может быть отображена на экране компьютера (или другими средствами визуального вывода). Графические объекты могут быть линейными объектами, двумерными объектами и трехмерными объектами. Графические объекты могут иметь любую форму. Границы графических объектов могут быть прямыми или кривыми линиями, или же прямыми или изогнутыми поверхностями, в зависимости от графического объекта.
[0047] В контексте настоящего описания, если конкретно не указано иное, выражение «граница» графического объекта подразумевает под собой периметр или часть периметра графического объекта, причем слово «периметр» означает контур, ограничивающий графический объект. Граница графического объекта может включать в себя части границы, которые могут быть сохранены как линии, соединяющие две точки экстремума соответствующей части периметра. Границы могут быть линиями (в случае двумерных графических объектов) или поверхностями (в случае трехмерных графических объектов).
[0048] Каждый вариант осуществления настоящего технического решения преследует по меньшей мере одну из вышеупомянутых целей и/или объектов. Следует иметь в виду, что некоторые объекты данного технического решения, полученные в результате попыток достичь вышеупомянутой цели, могут удовлетворять и другим целям, отдельно не указанным здесь.
[0049] Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления настоящего технического решения станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
Краткое описание чертежей
[0050] Для лучшего понимания настоящего технического решения, а также других его аспектов и характерных черт, сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:
[0051] На Фиг. 1 представлена принципиальная схема системы, выполненной в соответствии с вариантом осуществления настоящего технического решения.
[0052] На Фиг. 2 представлен не ограничивающий пример первого графического объекта и второго графического объекта, причем первый графический объект и второй графический объект являются двумерными графическими объектами, координаты которых хранятся на носителе информации компьютерного устройства, изображенного на Фиг. 1, и выполнены в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0053] На Фиг. 3 представлен не ограничивающий пример первого графического объекта, который является трехмерным графическим объектом, и координаты которого хранятся на носителе информации компьютерного устройства, изображенного на Фиг. 1, и который выполнен в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0054] На Фиг. 4 представлен не ограничивающий пример первого графического объекта и расположенного рядом второго графического объекта, причем первый графический объект и второй графический объект являются трехмерными графическими объектами, хранящимися на носителе информации компьютерного устройства, изображенного на Фиг. 1, и выполнены в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0055] На Фиг. 5 представлен не ограничивающий пример разделительных сеток, используемых процессором компьютерного устройства системы, изображенной на Фиг. 1.
[0056] На Фиг. 6 представлен не ограничивающий пример первого графического объекта и второго графического объекта, изображенных на Фиг. 2, и разделительной сетки, изображенной на Фиг. 5, которая является двумерной решеткой; причем все это выполнено в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0057] На Фиг. 7 представлен не ограничивающий пример первого графического объекта и второго графического объекта, изображенных на Фиг. 4, и трехмерной разделительной сетки, изображенной на Фиг. 5; причем все это выполнено в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0058] На Фиг. 8 представлен не ограничивающий пример левой нижней ячейки трехмерной разделительной сетки, изображенной на Фиг. 7, причем левая нижняя ячейка трехмерной разделительной сетки, изображенной на Фиг. 7, включает в себя исходные фрагменты первого графического объекта и второго графического объекта, изображенных на Фиг. 7.
[0059] На Фиг. 9 представлен не ограничивающий пример первого графического объекта и второго графического объекта, изображенных на Фиг. 2, и разделительной сетки, изображенной на Фиг. 5, которая является двумерной решеткой, а также на Фиг. 9 представлены первый исходный изогнутый фрагмент и второй исходный изогнутый фрагмент, причем оба изогнутых фрагмента включают в себя секции, последовательно соединяющие множество вершин; причем все это выполнено в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0060] На Фиг. 10 представлен не ограничивающий пример первого симплифицированного изогнутого фрагмента и второго симплифицированного изогнутого фрагмента, выполненных в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0061] На Фиг. 11 и Фиг. 12 представлена блок-схема компьютерного способа создания первой симплифицированной границы первого графического объекта и второй симплифицированной границы второго графического объекта, причем способ является примером настоящего технического решения, не ограничивающим его объем.
[0062] На Фиг. 13 представлен не ограничивающий пример первого графического объекта и второго графического объекта, изображенных на Фиг. 2, с разделительной сеткой, изображенной на Фиг. 5, где ни одна ячейка не включает в себя исходные изогнутые фрагменты первой исходной границы и второй исходной границы; причем все это выполнено в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
Осуществление
[0063] На Фиг. 1 представлена схема системы 100, выполненная в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем. Важно иметь в виду, что нижеследующее описание системы 100 представляет собой описание иллюстративных вариантов осуществления настоящего технического решения. Таким образом, все последующее описание представлено только как описание иллюстративного примера настоящего технического решения. Это описание не предназначено для определения объема или установления границ настоящего технического решения. Некоторые полезные примеры модификаций системы 100 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящего технического решения. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента настоящего технического решения. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 100 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящего технического решения, и в подобных случаях этот вариант представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящего технического решения могут обладать гораздо большей сложностью.
[0064] Система 100 включает в себя сервер 102. Сервер 102 может представлять собой обычный компьютерный сервер. В примере варианта осуществления настоящего технического решения, сервер 102 может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Излишне говорить, что сервер 102 может представлять собой любое другое подходящее аппаратное и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В представленном варианте осуществления настоящего технического решения, не ограничивающем его объем, сервер 102 является одиночным сервером. В других вариантах осуществления настоящего технического решения, не ограничивающих его объем, функциональность сервера 102 может быть разделена и может выполняться с помощью нескольких серверов.
[0065] В некоторых вариантах осуществления настоящего технического решения сервер 102 может находиться под контролем и/или управлением поставщика картографических сервисов, такого, например, как поставщик сервиса Яндекс. Карты (Yandex Maps™). В альтернативных вариантах осуществления настоящего технического решения сервер 102 может получать доступ к картографическому сервису, предоставляемому сторонними поставщиками. В других вариантах осуществления настоящего технического решения сервер 102 может находиться под контролем и/или управлением поставщика таких сервисов, как сервисы компьютерных игр, сервисы графического дизайна и других сервисов, имеющих отношение к компьютерной графике.
[0066] Сервер 102 включает в себя носитель 104 информации, который может использоваться сервером 102. В общем случае носитель 104 информации может быть выполнен как носитель любого характера и вида, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д. а также их комбинацию.
[0067] Варианты осуществления сервера 102 хорошо известны. Таким образом, достаточно отметить, что сервер 102 включает в себя, среди прочего, интерфейс 109 сетевой передачи данных (например, модем, сетевую карту и тому подобное) для двусторонней связи по сети 110 передачи данных; и процессор 108, соединенный с интерфейсом 109 сетевой передачи данных и носителем 104 информации, причем процессор 108 выполнен с возможностью выполнять различные процедуры, включая те, что описаны ниже. С этой целью процессор 108 может иметь доступ к машиночитаемым инструкциям, хранящимся на носителе 104 информации, выполнение которых инициирует реализацию процессором 108 различных описанных здесь процедур.
[0068] В некоторых вариантах осуществления настоящего технического решения, не ограничивающих его объем, сеть 110 передачи данных может представлять собой Интернет. В других вариантах осуществления настоящего технического решения сеть 110 передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.
[0069] Носитель 104 информации выполнен с возможностью хранить данные, включая машиночитаемые инструкции и другие данные, включая данные графических объектов любого типа. В некоторых вариантах осуществления настоящего технического решения носитель 104 информации может хранить по меньшей мере часть данных в базе данных 106. В других вариантах осуществления настоящего технического решения носитель 104 информации может хранить по меньшей мере часть данных в любом наборе данных, который отличается от базы данных.
[0070] Данные, сохраненные на носителе 104 информации (и, более конкретно, по меньшей мере частично, в некоторых вариантах осуществления настоящего технического решения, в базе данных 106) могут включать в себя координаты для отрисовки графических объектов любого типа. Не ограничивающие примеры графических объектов изображены на Фиг. 2, Фиг. 6 и Фиг. 7.
[0071] На Фиг. 2 представлен не ограничивающий пример первого графического объекта 202 и второго графического объекта 204, координаты которых хранятся на носителе 104 информации. Первый графический объект 202 и второй графический объект 204 изображены так, как они потенциально могут быть показаны на экране 118 клиентского устройства 112; экран 118 и клиентское устройство 112 будут описаны подробнее ниже. В данном не ограничивающем варианте осуществления настоящего технического решения первый графический объект 202 и второй графический объект 204 являются двумерными графическими объектами. И первый графический объект 202, и второй графический объект 204 имеют, соответственно, первую исходную границу (не пронумерована) и вторую исходную границу (не пронумерована). Первая исходная граница и вторая исходная граница определяются своими соответствующими координатами, которые определяют положение точек и линий в двумерном пространстве относительно системы осей (не изображены). Первая исходная граница и вторая исходная граница включают в себя только кривые линии. Однако, это не является обязательным, и исходные границы других двумерных объектов могут включать в себя и прямые линии, и кривые линии. В некоторых вариантах осуществления настоящего технического решения (например, в случаях, когда двумерные объекты являются растровыми изображениями) соответствующие исходные границы могут полностью или частично быть образованы линиями, которые, в свою очередь, образованы множеством точек.
[0072] Первый графический объект 202 и второй графический объект 204 расположены в непосредственной близости друг от друга. Непосредственная близость может определяться по-разному в различных вариантах осуществления настоящего технического решения. Параметры близости могут быть установлены с помощью предварительного определения максимального допуска различия между координатами соседних частей границы первого графического объекта 202 и второго графического объекта 204. С учетом Фиг. 2, участок первой исходной границы (между точками А и В) и участок второй исходной границы (между точками С и D), идущие вдоль друг друга, могут быть участками частей исходной границы, расположенными в непосредственной близости друг от друга, при условии, что несоответствие между их координатами не превышают предварительно определенных значений. Два графических объекта могут иметь кривые линии, расположенные в непосредственной близости друг от друга, например, когда эти два объекта представляют план парка, где две части парка разделяются изогнутой дорожкой. В то время как непосредственная близость двух фрагментов двух двумерных объектов может быть определена сравнением двух координат по двум осям в системе X-оси и Y-оси, непосредственная близость двух фрагментов двух трехмерных объектов может быть определена сравнением трех координат в системе трех осей (оси X, Y, Z).
[0073] Первая исходная граница и вторая исходная граница, в этом варианте осуществления настоящего технического решения, представляющие собой кривые линии, могут включать в себя множество вершин, которые в этом варианте осуществления настоящего технического решения представляют собой локальные точки экстремума изгибов. Локальные точки экстремума изгибов находятся между точками А и В, а также между точками С и D (локальные точки экстремума изгибов не пронумерованы).
[0074] На Фиг. 3 представлен альтернативный не ограничивающий вариант осуществления первого графического объекта 302, координаты которого хранятся на носителе 104 информации. Первый графический объект 302 изображен так, как он может быть потенциально показан на экране 118. В данном не ограничивающем варианте осуществления настоящего технического решения первый графический объект 302 является трехмерным графическим объектом.
[0075] Первый графический объект 302 имеет первую исходную границу (не пронумерована). Первая исходная граница представлена изогнутыми поверхностями неправильной геометрической формы и может быть определена координатами, которые определяют положение поверхностей с помощью ссылок, являющихся числами и определяющих, в свою очередь, положение поверхностей, (или точек, или линий, образующих поверхности) в трехмерном пространстве относительно системы осей (не изображены). Первая исходная граница включает в себя только изогнутые поверхности. Однако, это не является обязательным, и границы других трехмерных объектов могут включать в себя другие элементы, например, плоские поверхности, ребра и другие.
[0076] Первая исходная граница может включать в себя множество вершин, которые являются локальными точками экстремума изгибов. Для лучшего понимания и простоты восприятия несколько из них пронумерованы - 304, 306, 308, 310 на Фиг. 3. Как можно видеть, на границе первого графического объекта 302 на Фиг. 3 есть больше вершин, чем те четыре, что пронумерованы в описании Фиг. 3.
[0077] На Фиг. 4 представлен первый графический объект 302, изображенный на Фиг. 3, и расположенный рядом второй графический объект 404, координаты которых хранятся на носителе 104 информации. Второй графический объект 404 изображен так, как он может быть потенциально показан на экране 118. В данном не ограничивающем варианте осуществления настоящего технического решения второй графический объект 404 является трехмерным графическим объектом.
[0078] Второй графический объект 404 имеет вторую исходную границу (не пронумерована). Вторая исходная граница представлена изогнутыми поверхностями неправильной геометрической формы и может быть определена координатами, которые определяют положение поверхностей с помощью ссылок, являющихся числами и определяющих, в свою очередь, положение поверхностей (или точек, или линий, образующих поверхности), в трехмерном пространстве относительно системы осей (не изображены). Вторая исходная граница включает в себя только изогнутые поверхности.
Однако это не является обязательным, и границы других трехмерных объектов могут включать в себя другие элементы, например, плоские поверхности, ребра и другие.
[0079] Вторая исходная граница может включать в себя множество вершин, которые являются локальными точками экстремума изгибов. Для лучшего понимания и простоты восприятия несколько из них пронумерованы - 406, 408 на Фиг. 4. Как можно видеть, на границе второго графического объекта 404 на Фиг. 4 есть больше вершин, чем те две, что пронумерованы в описании Фиг. 4.
[0080] Носитель 104 информации может хранить машиночитаемые инструкции, которые управляют обновлениями, заполнением и модификациями базы данных 106 и/или другими наборами данных. Более конкретно, машиночитаемые инструкции, хранящиеся на носителе 104 информации, могут инициировать получение (обновление) сервером 102 информации относительно графических объектов (например, по сети 110 передачи данных), и сохранение информации относительно графических объектов, включая информацию относительно их соответствующих периметров в базе данных 106 и/или других наборах данных.
[0081] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют применение процессором 108 разделительной сетки с ячейками к графическим объектам. Разделительная сетка - это инструмент для разделения пространства на фрагменты. В различных вариантах осуществления настоящего технического решения могут быть различные разделительные сетки. С иллюстративными целями три разделительных сетки изображены на Фиг. 5.
[0082] Разделительные сетки 502 и 510 являются двумерными решетками, которые могут быть использованы для деления двумерных объектов на фрагменты. В двумерной решетке 502 ячейки 504 являются квадратами. В двумерной решетке 510 ячейки 514 являются ромбами. Однако, возможно множество других двумерных разделительных сеток, например, таких, которые делят пространство на параллелограммы или треугольники.
[0083] Разделительная сетка 520 является трехмерной разделительной сеткой, которая может быть использована для деления двумерных объектов или трехмерных объектов на фрагменты. В трехмерной разделительной сетке 520 ячейки 524 являются кубами.
Однако возможно множество других трехмерных разделительных сеток 520, например, таких, которые делят пространство на косые параллелепипеды.
[0084] Во всех разделительных сетках 502, 510 и 520 размер ячеек предварительно определен. Однако, в некоторых вариантах осуществления настоящего технического решения, машиночитаемые инструкции, хранящиеся на носителе 104 информации, при их исполнении, могут инициировать изменение процессором 108 предварительно определенного размера ячеек в большую или меньшую стороны. Это происходит из-за того, что некоторые графические объекты могут включать в себя и изогнутые границы, и ровные (прямые) границы. Возможно, что, из-за масштаба первого графического объекта 202 и второго графического объекта 204, и из-за масштаба разделительной сетки 502 не будет получено исходных изогнутых фрагментов, как изображено на Фиг. 12. В таких случаях размер ячеек 504 может быть изменен таким образом, что по меньшей мере некоторые исходные фрагменты первой исходной границы, являющиеся исходными изогнутыми фрагментами, и по меньшей мере некоторые исходные фрагменты второй исходной границы, являющиеся исходными изогнутыми фрагментами, получены в пределах ячейки.
[0085] Машиночитаемые инструкции, при их исполнении, инициируют осуществление процессором 108 применения двумерной решетки 502 к первому графическому объекту 202 и ко второму графическому объекту 204 таким образом, что первая исходная граница разделяется на множество исходных фрагментов первой исходной границы в точках 602, 604, 606, 608, 610, и 612, а вторая исходная граница разделяется на множество исходных фрагментов второй исходной границы в точках 622, 624, 626, 628, и 630, таким образом, что по меньшей мере некоторые исходные фрагменты первой исходной границы являются исходными изогнутыми фрагментами, а по меньшей мере некоторые исходные фрагменты второй исходной границы являются исходными изогнутыми фрагментами. На Фиг. 6 исходные фрагменты между точками 602 и 604 первой исходной границы являются исходными изогнутыми фрагментами. Исходные фрагменты между точками 620 и 622 второй исходной границы также являются исходными изогнутыми фрагментами.
[0086] Примеры, показывающие применение двумерной решетки 502, показаны исключительно с иллюстративными целями. Аналогично, как было описано выше, машиночитаемые инструкции могут инициировать осуществление процессором 108 применения двумерной решетки 502 к двумерным объектам 202, 204 или к любым другим двумерным объектам.
[0087] Кроме того, аналогично, к двумерным объектам 202, 204 или к трехмерным объектам 302, 404 может быть применена трехмерная разделительная сетка 520. Например, на Фиг. 7 показано применение трехмерной разделительной сетки 520 к первому графическому объекту 302 и второму графическому объекту 404, таким образом, что первая исходная граница делится на множество исходных фрагментов первой исходной границы и исходных фрагментов второй исходной границы на пересекающихся линиях (не изображены на Фиг. 7), где исходные границы, которые являются поверхностями, пересекаются сторонами воображаемого куба (сторонами ячейки 524), которые также являются поверхностями. На Фиг. 8 показана левая нижняя ячейка 524, изображенная на Фиг. 7. Эта ячейка включает в себя исходные фрагменты первой исходной границы, которые являются исходными изогнутыми фрагментами 802, 804, и исходные фрагменты второй исходной границы, которые являются исходными изогнутыми фрагментами 806, 808. Изогнутые фрагменты 802 и 806 являются фрагментами, созданными разделением посредством правой вертикальной стороны ячейки 524. Изогнутые фрагменты 804 и 808 являются фрагментами, созданными разделением посредством верхней горизонтальной стороны ячейки 524.
[0088] Возможно, что, из-за масштаба первого графического объекта 202 (302) и второго графического объекта 204 (404) и из-за масштаба разделительной сетки 502 (520), не будет получено исходных изогнутых фрагментов, как изображено на Фиг. 12 по отношению к двумерным фигурам 202 и 204. В таких случаях размер ячеек 504 (524) может быть изменен таким образом, что получены по меньшей мере некоторые исходные фрагменты первой исходной границы, являющиеся исходными изогнутыми фрагментами, и по меньшей мере некоторые исходные фрагменты второй исходной границы, являющиеся исходными изогнутыми фрагментами.
[0089] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют привязку процессором 108 пересечений первой исходной границы и второй исходной границы к ячейкам. С учетом Фиг. 3, машиночитаемые инструкции могут инициировать привязку процессором 108 пересечений 602, 604, 606, 608, 610, 612, 622, 624, 626, 628, 630 первой исходной границы и второй исходной границы к ячейкам 504. С учетом Фиг. 7 и Фиг. 8, машиночитаемые инструкции могут инициировать привязку процессором 108 пересечений 802, 804, 806, 808 и других, не изображенных на Фиг. 8 пересечений первой исходной границы и второй исходной границы к ячейкам 524, в дополнение к пересечениям 802, 804, 806, 808.
[0090] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют определение процессором 108 того, находятся ли по меньшей мере в одной ячейке 504 (514, 524) исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы.
[0091] На Фиг. 8 представлен не ограничивающий пример левой нижней ячейки 524 трехмерной разделительной сетки 520, изображенной на Фиг. 7, причем левая нижняя ячейка 524 включает в себя исходные фрагменты первого графического объекта 302 и второго графического объекта 404. В ячейке 524 находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы. Исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы являются изогнутыми поверхностями и обращены друг к другу.
[0092] На Фиг. 9 в первой ячейке 906 находится первый исходный изогнутый фрагмент 902 первой исходной границы, причем этот фрагмент является изогнутой линией между точками 602 и 604, и в этой ячейке находится второй исходный изогнутый фрагмент 904 второй исходной границы, причем этот фрагмент является изогнутой линией между точками 622 и 624. Первый исходный изогнутый фрагмент 902 включает в себя секции (не пронумерованы), которые являются множеством последовательно соединенных вершин (не пронумерованы) первого исходного изогнутого фрагмента 902. Аналогично, второй исходный изогнутый фрагмент 904 включает в себя секции (не пронумерованы), которые являются множеством последовательно соединенных вершин (не пронумерованы) второго исходного изогнутого фрагмента 904.
[0093] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют создание процессором 108, в ответ на то, что в первой ячейке 906 находится первый исходный изогнутый фрагмент 902 первой исходной границы и второй исходный изогнутый фрагмент 902 второй исходной границы, в первой ячейке 906 первого симплифицированного изогнутого фрагмента 1002 и второго симплифицированного изогнутого фрагмента 1004, причем и первый симплифицированный фрагмент 1002, и второй симплифицированный фрагмент 1004 изображены пунктирными линиями на Фиг. 10, с помощью применения правила симплификации соответственно к первому исходному изогнутому фрагменту 902 и ко второму исходному изогнутому фрагменту 904, при этом сохраняя положение привязанных пересечений 602, 604, 622, 624 без изменений.
[0094] В некоторых вариантах осуществления настоящего технического решения, например, в изображенном на Фиг. 10, где исходный изогнутый фрагмент (например, фрагмент 902 или 904) включает в себя секции, которые последовательно соединяют множество вершин этого исходного изогнутого фрагмента, причем правило симплификации может включать в себя уменьшение числа вершин этого исходного изогнутого фрагмента.
[0095] В некоторых вариантах осуществления настоящего технического решения правило симплификации включает в себя уменьшение числа вершин первого исходного изогнутого фрагмента 902 и второго исходного изогнутого фрагмента 904, как можно видеть на Фиг. 10, если сравнить первый исходный изогнутый фрагмент 902 и первый симплифицированный изогнутый фрагмент 1002, и если сравнить второй исходный изогнутый фрагмент 904 и второй симплифицированный изогнутый фрагмент 1004.
[0096] Уменьшение числа вершин - это один из многих возможных способов правил симплификации. В качестве не ограничивающего объем настоящего технического решения примера, правило симплификации может включать в себя выпрямление секций, последовательно соединяющих множество вершин.
[0097] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют определение процессором 108 того, схожи ли координаты первого симплифицированного изогнутого фрагмента 1002 и второго симплифицированного изогнутого фрагмента 1004 в пределах предварительно определенного порога разброса. Предварительно определенный порог разброса может быть предварительно определен в любой подходящей измерительной системе. Например, предварительно определенный порог разброса может быть выражен в пикселях (например, 2 пикселя), или в миллиметрах, и т.д. Определение того, схожи ли координаты первого симплифицированного изогнутого фрагмента 1002 и второго симплифицированного изогнутого фрагмента 1004 в пределах предварительно определенного порога разброса может быть осуществлено сравнением координат первого симплифицированного изогнутого фрагмента 1002 и второго симплифицированного изогнутого фрагмента 1004.
[0098] В некоторых вариантах осуществления настоящего технического решения определение того, схожи ли координаты первого симплифицированного изогнутого фрагмента 1002 и второго симплифицированного изогнутого фрагмента 1004 в пределах предварительно определенного порога разброса может быть осуществлено с помощью определения того, что координаты первого симплифицированного изогнутого фрагмента и координаты второго симплифицированного изогнутого фрагмента совпадают.
[0099] В некоторых вариантах осуществления настоящего технического решения определение того, схожи ли координаты первого симплифицированного изогнутого фрагмента 1002 и второго симплифицированного изогнутого фрагмента 1004 в пределах предварительно определенного порога разброса может быть осуществлено с помощью определения того, что несоответствие между координатами первого симплифицированного изогнутого фрагмента и координатами второго симплифицированного изогнутого фрагмента находятся в пределах предварительно определенного максимального порога.
[00100] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют создание процессором 108, в ответ на то, что координаты первого симплифицированного изогнутого фрагмента 1002 и второго симплифицированного изогнутого фрагмента 1004 схожи в пределах предварительно определенного порога разброса, первого набора инструкций отрисовки, причем первый набор инструкций отрисовки связан с геометрией либо первого симплифицированного изогнутого фрагмента 1002, либо второго симплифицированного изогнутого фрагмента 1004, и предназначен для отрисовки общей симплифицированной изогнутой части, представляющий и первый симплифицированный изогнутый фрагмент 1002, и второй симплифицированный изогнутый фрагмент 1004. Другими словами, процессор 108 может создавать первый набор инструкций отрисовки для отрисовки одного графического элемента, который может быть использован для отрисовки не только первого симплифицированного объекта, но также и для отрисовки второго симплифицированного объекта. Первый набор инструкций отрисовки может быть создан при учете одного из двух симплифицированных изогнутых фрагментов: первого симплифицированного изогнутого фрагмента 1002 или второго симплифицированного изогнутого фрагмента 1004, поскольку они схожи.
[00101] В некоторых вариантах осуществления настоящего технического решения первый набор инструкций отрисовки также включает в себя инструкции на использование, после отрисовки общей симплифицированной изогнутой части, представляющей и первый симплифицированный изогнутый фрагмент 1002, и второй симплифицированный изогнутый фрагмент 1004, таким образом отрисованной общей симплифицированной изогнутой части как двух идентичных частей границы для завершения первой части 1006 первой симплифицированной границы и для завершения второй части 1008 второй симплифицированной границы. Первая часть 1006 является остальным участком первой симплифицированной границы, а вторая часть 1008 является остальным участком второй симплифицированной границы. Для простоты первая часть 1006 первой симплифицированной границы и вторая часть 1008 второй симплифицированной границы изображены как идентичные соответствующим фрагментам исходной первой границы и второй границы. Однако первая часть 1006 первой симплифицированной границы и вторая часть 1008 второй симплифицированной границы во многих вариантах осуществления настоящего технического решения будут отличаться от соответствующих фрагментов исходной первой границы и второй границы.
[00102] Первый набор инструкций отрисовки может включать в себя инструкцию на отрисовку первой части 1006 (изображенной на Фиг. 9) первой симплифицированной границы первого графического объекта 202 и второй части 1008 (также изображенной на Фиг. 9) второй симплифицированной границы второго графического объекта 204, причем из состава первой части 1006 и второй части 1008, соответственно, исключены первый симплифицированный изогнутый фрагмент 1002 и второй симплифицированный изогнутый фрагмент 1004. Таким образом, первый набор инструкций отрисовки может включать в себя инструкцию на отрисовку остальной части первой симплифицированной границы и второй симплифицированной границы.
[00103] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют создание процессором 108, когда первый симплифицированный изогнутый фрагмент и второй симплифицированный изогнутый фрагмент различны, второго набора инструкций отрисовки для отрисовки первой симплифицированной границы первого графического объекта с использованием первого симплифицированного изогнутого фрагмента, и для отрисовки второй симплифицированной границы второго графического объекта с использованием второго симплифицированного изогнутого фрагмента. Первый симплифицированный изогнутый фрагмент и второй симплифицированный изогнутый фрагмент различны, если они не схожи в пределах предварительно определенного порога разброса. Например, если бы первый симплифицированный изогнутый фрагмент и второй симплифицированный изогнутый фрагмент имели форму, сходную с линией от точки 602 до точки 612, и от точки 622 до точки 630 (как изображено на Фиг. 6), они были бы различны, даже несмотря на тот факт, что они расположены в одной и той же ячейке 504.
[00104] Другими словами, когда первый симплифицированный изогнутый фрагмент и второй симплифицированный изогнутый фрагмент различны, будут созданы две графические линии, причем эти две линии могут быть использованы для отрисовки первого симплифицированного объекта и второго симплифицированного объекта.
[00105] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют получение процессором 108 от клиентского устройства 112 запроса от пользователя 121 на инструкции отрисовки для отрисовки первой симплифицированной границы первого графического объекта и второй симплифицированной границы второго графического объекта. Запрос на инструкции отрисовки может быть получен по сети 110 передачи данных. Запрос на инструкции отрисовки для отрисовки симплифицированных границ графических объектов может быть создан клиентским устройством 112, например, в ответ на уменьшение масштаба пользователем 121 при просмотре карты в веб-браузере, установленном на клиентском устройстве 112. Клиентское устройство 112 будет описано подробнее ниже.
[00106] Носитель 104 информации может хранить машиночитаемые инструкции, которые, при их исполнении, инициируют отправку процессором 108 первого набора инструкций отрисовки на клиентское устройство 112 по сети 110 передачи данных.
[00107] Система 100 также включает в себя клиентское устройство 112. Клиентское устройство 112 обычно связано с пользователем 121. Клиентское устройство 112 является разновидностью компьютерного устройства. Следует отметить, что тот факт, что клиентское устройство 112 связано с пользователем, не подразумевает какого-либо конкретного режима работы, равно как и необходимости входа в систему, регистрации, или чего-либо подобного.
[00108] Как изображено на Фиг. 1, клиентское устройство 112 может быть реализовано как Dell™ Precision Т1700 МТ CA033PT170011RUWS PC с процессором Intel Xeon™ 128, частотой ЦП 3300 MHz, видеокартой nVIDIA Quadra К2000 (не пронумерована), который работает на ОС Windows 7 Pro 64-bit, операционная система установлена и активирована. Клиентское устройство 112, среди прочего, включает в себя интерфейс 119 связи (например, модем, сетевая карта и так далее) для двусторонней связи по сети 110 передачи данных. Как будет понятно специалисту в данной области техники, реализация клиентского устройства 112 никак конкретно не ограничена. Клиентское устройство 112 может быть реализовано в виде персонального компьютера (настольного компьютера, ноутбука, нетбука и т.п.), беспроводного устройства передачи данных (мобильного телефона, смартфона, планшета и т.п.), а также другого оборудования.
[00109] Клиентское устройство 112 включает в себя устройство 113 пользовательского ввода. Реализация устройства 113 пользовательского ввода не ограничена и будет зависеть от того, какое клиентское устройство 112 используется. Устройство 113 пользовательского ввода может включать в себя любой механизм предоставления пользовательского ввода процессору 116. Устройство 113 пользовательского ввода может являться клавиатурой и/или мышью и так далее. Устройство 113 ввода не ограничено любым конкретным способом ввода, но может быть выполнено, например, как виртуальная кнопка на сенсорном экране или как физическая кнопка на корпусе электронного устройства.
[00110] Исключительно как пример и без введения ограничений, в тех вариантах осуществления настоящего технического решения, в которых клиентское устройство 112 реализовано как беспроводное устройство передачи данных (например, смартфон), устройство 113 пользовательского ввода может быть выполнено как устройство пользовательского ввода на основе интерференции света. Устройство 113 пользовательского ввода в одном примере является устройством восприятия движения пальца/объекта, которым пользователь осуществляет жест и/или на которое нажимает пальцем. Устройство 113 пользовательского ввода может идентифицировать/отслеживать жест и/или определять положение пальца пользователя на устройстве 113 пользовательского ввода. В примерах, в которых устройство 113 пользовательского ввода выполнено как устройство на основе интерференции света, например, сенсорный экран или мультисенсорный экран, устройство 113 пользовательского ввода может дополнительно выполнять функции устройства экрана 118.
[00111] Устройство 113 пользовательского ввода функционально подключено к процессору 116 и передает сигналы ввода (и сигналы вывода, когда оно функционирует и как экран 118) на основе различных форм пользовательского ввода для обработки и анализа процессором 116.
[00112] Клиентское устройство 112 дополнительно включает в себя носитель 114 информации, также упоминаемый как локальная память 114. Локальная память 114 может включать в себя любой тип медиа, включая (но не ограничиваясь) ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), твердотельные накопители, накопители на магнитной ленте и т.д. В общем случае задачей локальной памяти 114 является хранение машиночитаемых инструкций, а также других данных.
[00113] Клиентское устройство 112 включает в себя экран 118. Экран 118 может быть жидкокристаллическим дисплеем (LCD), светодиодным дисплеем (LED), дисплеем на основе интерферометрической модуляции (IMOD) или дисплеем на основе любой другой подходящей технологии. Экран 118 в общем случае выполнен с возможностью отображать графический интерфейс пользователя (GUI), который предоставляет простой в использовании графический интерфейс между пользователем 121 клиентского устройства 112 и операционной системой или приложением(ями), установленным(и) на клиентском устройстве 112. В общем случае графический интерфейс пользователя (GUI) представляет программы, файлы и операционные опции с помощью графических изображений. Экран 118 также в общем случае выполнен с возможностью отображать другую информацию, например, пользовательские данные и веб-ресурсы. Экран 118 может быть устройством на основе сенсорной модели, например, сенсорным экраном. Сенсорный экран является экраном, который определяет наличие и местоположение касаний пользователя. Экран 118 может быть экраном мультисенсорной или дуальной сенсорной модели, которые могут определять наличие, местоположение и движение ввода прикосновениями. В примерах, в которых экран 118 выполнен как устройство на основе сенсорной модели, например, сенсорный экран, или мультисенсорный экран, экран 118 может выполнять функции устройства 113 пользовательского ввода.
[00114] Экран 118 функционально соединен с процессором 116 и получает от него сигналы. В примерах, которых экран 118 выполнен как устройство на основе сенсорной модели, например, сенсорный экран, или мультисенсорный экран, экран 118 может также передавать сигналы ввода на основе различных форм пользовательского ввода для обработки и анализа процессором 116.
[00115] Клиентское устройство 112 также включает в себя вышеупомянутый процессор 116. Процессор 116 выполнен с возможностью реализовать различные операции в соответствии с машиночитаемым программным кодом. Процессор 116 функционально связан с устройством 113 пользовательского ввода, локальной памятью 114 и экраном 118. Процессор 116 выполнен с возможностью сохранять или иметь доступ к машиночитаемым инструкциям, выполнение которых инициирует реализацию процессором различных процедур. В качестве не ограничивающих примеров, процессор 116, описанный здесь, может получить доступ к машиночитаемым инструкциям, которые при выполнении могут инициировать реализацию процессором 116: отображения информации на экране 118; получения от пользователя 121 клиентского устройства 112 с помощью устройства 113 пользовательского ввода запроса на отрисовку симплифицированных графических объектов; отправку клиентским устройством 112 на сервер 102 по сети 110 передачи данных запроса на инструкции отрисовки для отрисовки первой симплифицированной границы первого графического объекта 202 (302) и второй симплифицированной границы второго графического объекта 204 (404); получения клиентским устройством 112 от сервера 102 наборов инструкций отрисовки и других данных; отображения на экране 118 исходных графических объектов и симплифицированных графических объектов.
[00116] Локальная память 114 выполнена с возможностью хранить данные, включая машиночитаемые инструкции и другие данные, включая данные графических объектов любого типа. В некоторых вариантах осуществления настоящего технического решения локальная память 114 может хранить по меньшей мере часть данных в базе данных (не изображена). В других вариантах осуществления настоящего технического решения локальная память 114 может хранить по меньшей мере часть данных в любом наборе данных, который отличается от базы данных.
[00117] Данные, сохраненные в локальной памяти 114 (и, более конкретно, по меньшей мере частично, в некоторых вариантах осуществления настоящего технического решения, в базе данных) могут включать в себя графические объекты любого типа. Не ограничивающие примеры графических объектов изображены на Фиг. 2, Фиг. 3 и Фиг. 4. Графические объекты, изображенные на Фиг. 2, Фиг. 3, и Фиг. 4 описаны подробнее выше.
[00118] Локальная память 114 может хранить машиночитаемые инструкции, которые управляют обновлениями, заполнением и модификациями базы данных и/или другими наборами данных. Более конкретно, машиночитаемые инструкции, хранящиеся в локальной памяти 114, могут позволить клиентскому устройству 112 получить (обновить) информацию относительно графических объектов, (например, от устройства 113 ввода, или по сети 110 передачи данных, и т.д.) и сохранить информацию о графических объектах, включая информацию об их соответствующих периметрах в базе данных и/или других наборов данных.
[00119] Машиночитаемые инструкции, сохраненные в локальной памяти 114, при их исполнении, могут инициировать осуществление процессором 116 тех же функций, что инициируют те машиночитаемые инструкции, которые хранятся на машиночитаемом носителе 104 информации сервера 102.
[00120] Машиночитаемые инструкции, сохраненные в локальной памяти 114, при их исполнении, могут дополнительно инициировать отрисовку процессором 116 по меньшей мере участка первой симплифицированной границы и по меньшей мере участка второй симплифицированной границы на экране 118. В некоторых вариантах осуществления настоящего технического решения отрисовка по меньшей мере участка первой симплифицированной границы и по меньшей мере участка второй симплифицированной границы на экране 118 является отрисовкой масштабированного визуального представления по меньшей мере участка первой симплифицированной границы и по меньшей мере участка второй симплифицированной границы. Отрисовка по меньшей мере участка первой симплифицированной границы и по меньшей мере участка второй симплифицированной границы может быть результатом либо получения соответствующих инструкций от сервера 102, либо результатом обработки исходных границ процессором 116.
[00121] Клиентское устройство 112 включает в себя, среди прочего интерфейс 109 сетевой передачи данных (например, модем, сетевую карту и так далее) для двусторонней связи по сети 110 передачи данных. Клиентское устройство 112 соединено с сетью 110 передачи данных с помощью интерфейса 109 сетевой передачи данных через линию передачи данных (не пронумерована). В некоторых вариантах осуществления настоящего технического решения, не ограничивающих его объем, сеть 110 передачи данных может представлять собой Интернет. В других вариантах осуществления настоящего технического решения сеть 110 передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п. Клиентское устройство 112 может устанавливать соединения по сети 110 передачи данных с другими устройствами, например, с серверами. Более конкретно, клиентское устройство 112 может устанавливать соединения и взаимодействовать с сервером 102.
[00122] Реализация линии передачи данных никак конкретно не ограничена и будет зависеть от того, как клиентское устройство 112 выполнено. В качестве примера, но не ограничения, в данных вариантах осуществления настоящего технического решения в случаях, когда клиентское устройство 112 представляет собой беспроводное устройство связи (например, смартфон), линия передачи данных представляет собой беспроводную сеть передачи данных (например, среди прочего, линия передачи данных 3G, линия передачи данных 4G, беспроводной интернет Wireless Fidelity или коротко WiFi, Bluetooth и т.п.). В тех примерах, где клиентское устройство 112 представляет собой портативный компьютер, линия передачи данных может быть как беспроводной (беспроводной интернет Wireless Fidelity или коротко WiFi, Bluetooth и т.п) так и проводной (соединение на основе сети Ethernet).
[00123] Важно иметь в виду, что варианты реализации клиентского устройства 112, линии передачи данных и сети 110 передачи данных приведены исключительно для наглядности. Таким образом, специалисты в данной области техники смогут понять подробности других конкретных вариантов осуществления клиентского устройства 112, линии передачи данных и сети 110 передачи данных. То есть представленные здесь примеры не ограничивают объем настоящего технического решения.
[00124] На Фиг. 11 и Фиг. 12 представлен компьютерный способ 1100 создания первой симплифицированной границы первого графического объекта 202 и второй симплифицированной границы второго графического объекта 204, причем первый графический объект 202 и второй графический объект 204 имеют соответственно первую исходную границу и вторую исходную границу, причем первая исходная граница и вторая исходная граница включают в себя изогнутые части 902, 904 границы, расположенные в непосредственной близости друг от друга; способ выполняется на сервере 102.
[00125] Этап 1102 - получение инструкции для создания первой симплифицированной границы первого графического объекта 202 и второй симплифицированной границы второго графического объекта 204
[00126] Способ 1100 начинается на этапе 1102, на котором сервер 102 получает от клиентского устройства 112 по сети 110 передачи данных запрос на инструкции отрисовки для отрисовки первой симплифицированной границы первого графического объекта 202 и второй симплифицированной границы второго графического объекта 204.
[00127] Запрос на инструкции отрисовки для отрисовки первой симплифицированной границы первого графического объекта 202 и второй симплифицированной границы второго графического объекта 204 может быть создан клиентским устройством 112, например, в ответ на уменьшение масштаба пользователем 121 при просмотре карты в веб-браузере, установленном на клиентском устройстве 112.
[00128] Затем способ 1100 переходит к этапу 1104.
[00129] Этап 1104 - применение разделительной сетки 502 с ячейками 504 к первому графическому объекту 202 и ко второму графическому объекту 204
[00130] Далее, на этапе 1104 процессор 108 применяет двумерную решетку 502 с ячейками 504 к первому графическому объекту 202 и ко второму графическому объекту 204 таким образом, что первая исходная граница разделяется на множество исходных фрагментов первой исходной границы и по меньшей мере некоторые исходные фрагменты первой исходной границы являются исходными изогнутыми фрагментами, а вторая исходная граница разделяется на множество исходных фрагментов второй исходной границы, и по меньшей мере некоторые исходные фрагменты второй исходной границы являются исходными изогнутыми фрагментами.
[00131] Например, с учетом Фиг. 6, первый графический объект 202 будет разделен на множество исходных фрагментов, соединяющих точки 602, 604, 606, 608, 610, и 612. Второй графический объект 204 будет разделен на множество исходных фрагментов, соединяющих точки 622, 624, 626, 628, и 630.
[00132] Все фрагменты, изображенные на Фиг. 6, являются изогнутыми фрагментами. В других вариантах осуществления настоящего технического решения некоторые фрагменты могут быть изогнутыми фрагментами, а некоторые фрагменты могут быть прямыми линиями. Фрагмент может быть прямой линией, если двумерная решетка 502 делит двумерный объект, обладающий и изогнутыми и прямыми линиями, и некоторые ячейки 504 включают в себя фрагменты прямой линии.
[00133] Затем способ 1100 переходит к этапу 1106.
[00134] Этап 1106 - привязка пересечений 602, 604, 606, 608, 610, 612, 622, 624, 626, 628, 630 первой исходной границы и второй исходной границы к ячейкам 504
[00135] Далее, на этапе 1106 процессор 108 привязывает пересечения 602, 604, 606, 608, 610, 612, 622, 624, 626, 628, 630 первой исходной границы и второй исходной границы к ячейкам 504. В итоге они фиксируются и не перемещаются во время процесса симплификации границ.
[00136] Затем способ 1100 переходит к этапу 1108.
[00137] Этап 1108 - определение того, находятся ли по меньшей мере в одной ячейке 504 фрагменты и первой исходной границы, и второй исходной границы
[00138] Возможно, что первый графический объект 202 и второй графический объект 204 обладают частями границ, включающими в себя и прямые, и изогнутые участки. Таким образом, когда применяется двумерная решетка 502, может получиться так, что ни в одной ячейке 504 не будет находиться исходных изогнутых фрагментов и первой исходной границы, и второй исходной границы. Например, как на Фиг. 12, первый графический объект 202 и второй графический объект 204 обладают частями границ, включающими в себя и прямые, и изогнутые участки. Изображены три ячейки 504 (не пронумерованы на Фиг. 12), в которых находятся фрагменты и первой исходной границы, и второй исходной границы. Как можно видеть, в одной из таких ячеек 502, пронумерованной как 1202 на Фиг. 12, находятся исходный изогнутый фрагмент 1212 первой исходной границы (между точками 1204 и 1206) и исходный прямой фрагмент 1214 второй исходной границы (между точками 1208 и 1210). Аналогично, ячейки 504, расположенные левее и правее ячейки 1202 также включают в себя прямые и изогнутые фрагменты исходных границ. На Фиг. 12 нет ячеек 504, в которых находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы.
[00139] На этапе 1108 процессор определяет, находятся ли по меньшей мере в одной ячейке 504 исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы. В ответ на то, что по меньшей мере в одной ячейке 504 находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы, способ 1100 переходит к этапу 1112. В ответ на то, что ни в одной ячейке 504 не находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы, способ 1100 переходит к этапу 1110.
[00140] Следует отметить, что в некоторых вариантах осуществления настоящего технического решения минимальное число ячеек 504, в которых находятся исходные изогнутые фрагменты и первой исходной границы 202, и второй исходной границы 204, является предварительно определенным. В этих вариантах осуществления настоящего технического решения процессор 108 определяет, находятся ли в минимальном числе ячеек 504 исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы.
[00141] Этап 1110 - изменение размера ячеек
[00142] На этапе 1110, в ответ на то, что ни в одной ячейке 504 не находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы, процессор 108 изменяет размер ячеек 504 для того, чтобы по меньшей мере в одной ячейке 504 находились исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы.
[00143] В альтернативном варианте осуществления настоящего технического решения, в ответ на то, что ни в одной ячейке 504 не находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы, процессор 108 изменяет размер ячеек 504 для того, чтобы по меньшей мере в минимальном числе ячеек 504 находились исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы.
[00144] Например, с учетом Фиг. 12, увеличение размера ячеек 504 может привести к ситуации, в которой по меньшей мере в одной ячейке 504 находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы. В другом примере, уменьшение размера ячеек 502 может привести к ситуации, в которой по меньшей мере в одной ячейке 504 находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы.
[00145] После того, как был осуществлен этап 1110, способ 1100 переходит к этапу 1108, описанному выше. Этапы 1110 и 1108 чередуются до тех пор, пока число ячеек, в которых находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы, не достигнет предварительно определенного числа, которое в этом варианте осуществления настоящего технического решения равно единице.
[00146] Этап 1112 - создание в первой ячейке 906, изображенной на Фиг. 9 и Фиг. 10, первого симплифицированного изогнутого фрагмента 1102 и второго симплифицированного изогнутого фрагмента 1004
[00147] На этапе 1112 процессор 108, в ответ на то, что в первой ячейке 906, изображенной на Фиг. 9, находится первый исходный изогнутый фрагмент 902 первой исходной границы и второй исходный изогнутый фрагмент 904 второй исходной границы, создает в первой ячейке 906 первый симплифицированный изогнутый фрагмент 1002 и второй симплифицированный изогнутый фрагмент 1004 (при этом и первый симплифицированный фрагмент 1002, и второй симплифицированный фрагмент 1004 изображены на Фиг. 10), с помощью применения правила симплификации соответственно к первому исходному изогнутому фрагменту 902 и ко второму исходному изогнутому фрагменту 904, при этом сохраняя положение привязанных пересечений 602, 604, 622 и 624 без изменений. В этом варианте осуществления настоящего технического решения правило симплификации включает в себя уменьшение числа вершин первого исходного изогнутого фрагмента 902 и второго исходного изогнутого фрагмента 904, как изображено на Фиг. 10.
[00148] Следует отметить, что в некоторых вариантах осуществления настоящего технического решения создание симплифицированных границ первого графического объекта 202 и симплифицированных границ второго графического объекта 204 также включает в себя применение правила симплификации ко всем или некоторым исходным изогнутым фрагментам и первого графического объекта 202 и второго графического объекта 204, вне зависимости от того, в каких ячейках 504 эти фрагменты расположены.
[00149] Затем способ 1100 переходит к этапу 1114.
[00150] Этап 1114 - определение того, схожи ли координаты первого симплифицированного изогнутого фрагмента и второго симплифицированного изогнутого фрагмента в пределах предварительно определенного порога разброса
[00151] Далее, на этапе 1114 процессор 108 определяет, схожи ли координаты первого симплифицированного изогнутого фрагмента 1002 и второго симплифицированного изогнутого фрагмента 1004 в пределах предварительно определенного порога разброса с помощью установления того, что несовпадение между координатами первого симплифицированного изогнутого фрагмента 1002 и координатами второго симплифицированного изогнутого фрагмента 1004 находятся в пределах предварительно определенного максимального порога. Например, для двумерных объектов, координаты которых выражаются в системе Х-оси и Y-оси, различия между координатами первого симплифицированного изогнутого фрагмента 1002 и координатами второго симплифицированного изогнутого фрагмента 1004 могут быть оценены с помощью анализа различий значений Х-оси и Y-оси.
[00152] Если различие значений Х-оси и Y-оси находится в пределах предварительно определенного максимального порога, то первый симплифицированный изогнутый фрагмент 1002 и второй симплифицированный изогнутый фрагмент 1004 схожи, и способ 1100 переходит к этапу 1116.
[00153] Если различие значений Х-оси и Y-оси находится вне пределов предварительно определенного максимального порога на всем протяжении двух линий, или если они находятся вне пределов предварительно определенного максимального порога в некоторых точках, то первый симплифицированный изогнутый фрагмент 1002 и второй симплифицированный изогнутый фрагмент 1004 различны, и способ 1100 переходит к этапу 1118.
[00154] Этап 1116 - создание первого набора инструкций отрисовки, связанных с геометрией одного из: первого симплифицированного изогнутого фрагмента 1002 или второго симплифицированного изогнутого фрагмента 1004, и предназначенных для отрисовки общей симплифицированной изогнутой части, представляющей и первый симплифицированный изогнутый фрагмент 1002, и второй симплифицированный изогнутый фрагмент 1004
[00155] На этапе 1116 в ответ на то, что координаты первого симплифицированного изогнутого фрагмента 1002 и второго симплифицированного изогнутого фрагмента 1004 схожи в пределах предварительно определенного порога разброса, процессор 108 создает первый набор инструкций отрисовки, причем первый набор инструкций отрисовки связан с геометрией либо первого симплифицированного изогнутого фрагмента 1002, либо второго симплифицированного изогнутого фрагмента 1004, и предназначен для отрисовки общей симплифицированной изогнутой части, представляющий и первый симплифицированный изогнутый фрагмент 1002, и второй симплифицированный изогнутый фрагмент 1004. Другими словами, процессор 108 создает первый набор инструкций отрисовки для отрисовки одного графического элемента, который может быть использован для отрисовки не только первого симплифицированного объекта, но также и для отрисовки второго симплифицированного объекта. Первый набор инструкций отрисовки может быть создан при учете одного из двух симплифицированных изогнутых фрагментов: первого симплифицированного изогнутого фрагмента 1002 или второго симплифицированного изогнутого фрагмента 1004, поскольку они схожи.
[00156] В этом варианте осуществления настоящего технического решения первый набор инструкций отрисовки также включает в себя инструкции на использование, после отрисовки общей симплифицированной изогнутой части, представляющей и первый симплифицированный изогнутый фрагмент 1002, и второй симплифицированный изогнутый фрагмент 1004, таким образом отрисованной общей симплифицированной изогнутой части как двух идентичных частей границы для завершения первой части 1006 первой симплифицированной границы (остального участка первой симплифицированной границы) и для завершения второй части 1008 второй симплифицированной границы (остального участка второй симплифицированной границы).
[00157] В этом варианте осуществления настоящего технического решения, первый набор инструкций отрисовки может включать в себя инструкцию на отрисовку первой части 1006 первой симплифицированной границы первого графического объекта 202 и второй части 1008 второй симплифицированной границы второго графического объекта 204, причем из состава первой части 1006 и второй части 1008, соответственно, исключены первый симплифицированный изогнутый фрагмент 1002 и второй симплифицированный изогнутый фрагмент 1004.
[00158] Сервер 102 затем отправляет первый набор инструкций отрисовки на клиентское устройство 112, которое может отрисовать первый симплифицированный графический объект и второй симплифицированный графический объект на экране 118.
[00159] Альтернативно, в ответ на то, что первый симплифицрованный изогнутый фрагмент 1002 и второй симплифицрованный изогнутый фрагмент 1004 различны, способ 1100 переходит к этапу 1118.
[00160] Этап 1118 - создание второго набора инструкций отрисовки для отрисовки первой симплифицированной границы первого графического объекта 202 с использованием первого симплифицированного изогнутого фрагмента 1002, и для отрисовки второй симплифицированной границы второго графического объекта 204 с использованием второго симплифицированного изогнутого фрагмента 1004
[00161] На этапе 118 в ответ на различие первого симплифицированного изогнутого фрагмента 1002 и второго симплифицированного изогнутого фрагмента 1004, процессор 108 создает второй набор инструкций отрисовки для отрисовки первой симплифицированной границы первого графического объекта 202 с использованием первого симплифицированного изогнутого фрагмента 1002, и для отрисовки второй симплифицированной границы второго графического объекта 204 с использованием второго симплифицированного изогнутого фрагмента 1004.
[00162] В этом варианте осуществления настоящего технического решения второй набор инструкций отрисовки также включает в себя инструкции на использование, после отрисовки первого симплифицированного изогнутого фрагмента 1002, и второго симплифицированного изогнутого фрагмента 1004, таким образом, отрисованных двух симплифицированных изогнутых частей как двух различных частей границы для завершения первой части 1006 первой симплифицированной границы (остального участка первой симплифицированной границы) и для завершения второй части 1008 второй симплифицированной границы (остального участка второй симплифицированной границы).
[00163] В этом варианте осуществления настоящего технического решения, второй набор инструкций отрисовки может включать в себя инструкцию на отрисовку первой части первой части 1006 первой симплифицированной границы первого графического объекта 202 и второй части 1008 второй симплифицированной границы второго графического объекта 204, причем из состава первой части 1006 и второй части 1008, соответственно, исключены первый симплифицированный изогнутый фрагмент 1002 и второй симплифицированный изогнутый фрагмент 1004.
[00164] Сервер 102 затем отправляет второй набор инструкций отрисовки на клиентское устройство 112, которое может отрисовать первый симплифицированный графический объект и второй симплифицированный графический объект на экране 118.
[00165] Затем способ 1100 завершается.
[00166] Осуществление этапов способа 1100 обеспечивает множество технических преимуществ. Одно из технических преимуществ заключается в экономии компьютерных ресурсов, идущих на отрисовку симплифицированных графических объектов на экране, потому что этапы способа 1100 дают возможность использовать симплифицированный фрагмент границы более чем в одной фигуре. Этот эффект может увеличиться, принимая во внимание тот факт, что более чем два графических объекта могут быть расположены рядом друг с другом, и что может быть несколько схожих симплифицированных частей границ в пределах каждой пары симплифицированных графических объектов.
[00167] Этапы способа 1100 объяснялись с использованием примера двух двумерных графических объектов. Как будет понятно специалистам в данной области техники, этапы способа 1100 могут применяться и к трехмерным объектам.
[00168] Практическое промышленное применение описанного настоящего технического решения может быть широким. В качестве не ограничивающего объем настоящего технического решения примера, симплификация двумерных объектов может быть использована в сервисах цифровых карт. В качестве другого не ограничивающего объем настоящего технического решения примера, симплификация трехмерных объектов может быть использована в других типах компьютерных приложений (играх, приложения графического моделирования и так далее).
[00169] Этапы способа 1100 объяснялись в том виде, в котором они могут быть выполнены на сервере 102 системы 100. Однако, как будет понятно специалистам в данной области техники, этапы способа 1100 могут быть выполнены на других компьютерных устройствах, например, на клиентском устройстве 112, с очевидными адаптациями. Например, если этапы способа 1100 будут выполнены на клиентском устройстве 112 процессор 116 может не отправлять первый набор инструкций отрисовки или второй набор инструкций отрисовки на внешнее электронное устройство, а отправить один из них на видеокарту для отрисовки симплифицированных графических объектов на экране 118.
[00170] Таким образом, с одной точки зрения, варианты осуществления настоящего технического решения можно изложить следующим образом, структурированно, пронумерованными пунктами:
[00171] [Пункт 1] Способ создания первой симплифицированной границы первого графического объекта (202, 302) и второй симплифицированной границы второго графического объекта (204, 404), причем первый графический объект (202, 302) и второй графический объект (204, 404) имеют соответственно первую исходную границу и вторую исходную границу, причем первая исходная граница и вторая исходная граница включают в себя изогнутые части границы, расположенные в непосредственной близости друг от друга; способ выполняют на компьютерном устройстве и способ включает в себя:
применение разделительной сетки (502, 510, 520) с ячейками (504, 514, 524) к первому графическому объекту (202, 302) и ко второму графическому объекту (204, 404) таким образом, что
первая исходная граница разделяется на множество исходных фрагментов первой исходной границы, причем по меньшей мере некоторые исходные фрагменты первой исходной границы являются исходными изогнутыми фрагментами,
а вторая исходная граница разделяется на множество исходных фрагментов второй исходной границы, причем по меньшей мере некоторые исходные фрагменты второй исходной границы являются исходными изогнутыми фрагментами;
привязку пересечений (602, 604, 606, 608, 610, 612, 622, 624, 626, 628, 630, 802, 804, 806, 808) первой исходной границы и второй исходной границы к ячейкам (504, 514, 524);
определение того, находятся ли по меньшей мере в одной ячейке (504, 514, 524) фрагменты и первой исходной границы, и второй исходной границы;
в ответ на то, что в первой ячейке (504, 514, 524) находится первый исходный изогнутый фрагмент (902) первой исходной границы и второй исходный изогнутый фрагмент (904) второй исходной границы, создание в первой ячейке (504, 514, 524) первого симплифицированного изогнутого фрагмента (1002) и второго симплифицированного изогнутого фрагмента (1004) с помощью применения правила симплификации соответственно к первому исходному изогнутому фрагменту (902) и ко второму исходному изогнутому фрагменту (904), при этом сохраняя положение привязанных пересечений (602, 604, 606, 608, 610, 612, 622, 624, 626, 628, 630, 802, 804, 806, 808) без изменений;
определение того, схожи ли координаты первого симплифицированного изогнутого фрагмента (1002) и второго симплифицированного изогнутого фрагмента (1004) в пределах предварительно определенного порога разброса;
в ответ на то, что координаты первого симплифицированного изогнутого фрагмента (1002) и второго симплифицированного изогнутого фрагмента (1004) схожи в пределах предварительно определенного порога разброса, создание первого набора инструкций отрисовки, причем первый набор инструкций отрисовки:
связан с геометрией либо первого симплифицированного изогнутого фрагмента (1002), либо второго симплифицированного изогнутого фрагмента (1004), и
предназначен для отрисовки общей симплифицированной изогнутой части, представляющий и первый симплифицированный изогнутый фрагмент (1002), и второй симплифицированный изогнутый фрагмент (1004).
[00172] [Пункт 2] Способ по п. 1, в котором первый набор инструкций отрисовки может включать в себя инструкцию на отрисовку первой части (1006) первой симплифицированной границы первого графического объекта (202, 302) и второй части (1008) второй симплифицированной границы второго графического объекта (204, 404), причем из состава первой части (1006) и второй части (1008), соответственно, исключены первый симплифицированный изогнутый фрагмент (1002) и второй симплифицированный изогнутый фрагмент (1004).
[00173] [Пункт 3] Способ по п. 2, в котором первый набор инструкций отрисовки также включает в себя инструкции на использование, после отрисовки общей симплифицированной изогнутой части, представляющей и первый симплифицированный изогнутый фрагмент 1002, и второй симплифицированный изогнутый фрагмент 1004, таким образом, отрисованной общей симплифицированной изогнутой части как двух идентичных частей границы для завершения первой части 1006 первой симплифицированной границы и для завершения второй части (1008) второй симплифицированной границы.
[00174] [Пункт 4] Способ по п. 2, в котором в ответ на то, что первый симплифицированный изогнутый фрагмент (1002) и второй симплифицированный изогнутый фрагмент (1004) различны, дополнительно создают второй набор инструкций отрисовки для
отрисовки первой симплифицированной границы первого графического объекта (202, 302) с использованием первого симплифицированного изогнутого фрагмента (1002) и для
отрисовки второй симплифицированной границы второго графического объекта (204, 404) с использованием второго симплифицированного изогнутого фрагмента (1004).
[00175] [Пункт 5] Способ по любому из пп. 1-4, в котором компьютерное устройство является сервером (102), и в котором дополнительно получают от клиентского устройства (112) запрос на инструкции отрисовки для отрисовки первой симплифицированной границы первого графического объекта (202, 302) и второй симплифицированной границы второго графического объекта (204, 404).
[00176] [Пункт 6] Способ по п. 5, в котором дополнительно отправляют на клиентское устройство (112) первый набор инструкций отрисовки, связанных с геометрией одного из: первого симплифицированного изогнутого фрагмента (1002) или второго симплифицированного изогнутого фрагмента (1004), и предназначенных для отрисовки общей симплифицированной изогнутой части, представляющей и первый симплифицированный изогнутый фрагмент (1002), и второй симплифицированный изогнутый фрагмент (1004).
[00177] [Пункт 7] Способ по п. 6, в котором первый набор инструкций отрисовки включает в себя инструкции на отрисовку первой части (1006) первой симплифицированной границы первого графического объекта (202, 302) и второй части (1008) второй симплифицированной границы второго графического объекта (204, 404), причем из состава первой части (1006) и второй части (1008) соответственно исключены первый симплифицированный изогнутый фрагмент (1002) и второй симплифицированный изогнутый фрагмент (1004).
[00178] [Пункт 8] Способ по любому из пп. 1-4,
в котором: компьютерное устройство является клиентским устройством (112) с видеокартой и процессором, причем процессор функционально соединен с видеокартой,
способ также включает в себя отправку процессором на видеокарту первого набора инструкций отрисовки для отрисовки первой симплифицированной границы первого графического объекта (202, 302) для отрисовки второй симплифицированной границы второго графического объекта (204, 404), причем инструкции связаны с геометрией одного из: первого симплифицированного изогнутого фрагмента (1002) или второго симплифицированного изогнутого фрагмента (1004), и предназначены для отрисовки общей симплифицированной изогнутой части, представляющей и первый симплифицированный изогнутый фрагмент (1002), и второй симплифицированный изогнутый фрагмент 1004).
[00179] [Пункт 9] Способ по любому из пп. 1-8, в котором первый графический объект (202) и второй графический объект (204) являются двумерными графическими объектами.
[00180] [Пункт 10] Способ по п. 9, в котором привязка пересечений (602, 604, 606, 608, 610, 612, 622, 624, 626, 628, 630) первой исходной границы и второй исходной границы к ячейкам (504, 514, 524) является привязкой точек (602, 604, 606, 608, 610, 612, 622, 624, 626, 628, 630) пересечений.
[00181] [Пункт 11] Способ по любому из пп. 1-10, в котором разделительная сетка (502, 510) является двумерной решеткой (502, 510).
[00182] [Пункт 12] Способ по любому из пп. 1-8, в котором первый графический объект (302) и второй графический объект (404) являются трехмерными графическими объектами.
[00183] [Пункт 13] Способ по п. 12, в котором:
разделительная сетка (520) является трехмерной разделительной сеткой (520) и в котором
привязка пересечений (802, 804, 806, 808) первой исходной границы и второй исходной границы к ячейкам (524) является привязкой линий (802, 804, 806, 808) пересечений.
[00184] [Пункт 14] Способ по любому из пп. 1-13, в котором:
первый исходный изогнутый фрагмент (902) включает в себя секции, которые являются множеством последовательно соединенных вершин первого исходного изогнутого фрагмента (902),
второй исходный изогнутый фрагмент (904) включает в себя секции, которые являются множеством последовательно соединенных вершин второго исходного изогнутого фрагмента (904), и в котором
правило симплификации включает в себя уменьшение числа вершин первого исходного изогнутого фрагмента (902) и второго исходного изогнутого фрагмента (904).
[00185] [Пункт 15] Способ по любому из пп. 1-14, в котором предварительно определяют размер ячеек (504, 514, 524).
[00186] [Пункт 16] Способ по п. 15, в котором предварительно определяют минимальное число ячеек, в которых находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы, и в ответ на то, что число ячеек (504, 514, 524), в которых находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы, после применения разделительной сетки (502, 510, 520) к первому графическому объекту (202, 302) и ко второму графическому объекту (204, 404), не превышает указанного предварительно определенного числа, способ дополнительно включает в себя изменение размера ячеек (504, 514, 524) до тех пор, пока число ячеек (504, 514, 524), в которых находятся исходные изогнутые фрагменты и первой исходной границы, и второй исходной границы, не достигнет предварительно определенного числа.
[00187] [Пункт 17] Способ по любому из пп. 1-16, в котором определяют, схожи ли координаты первого симплифицированного изогнутого фрагмента (1002) и второго симплифицированного изогнутого фрагмента (1004) пределах предварительно определенного порога разброса, с помощью определения любого пункта, выбранного из списка:
координаты первого симплифицированного изогнутого фрагмента (1002) и координаты второго симплифицированного изогнутого фрагмента (1004) совпадают, или
несоответствие между координатами первого симплифицированного изогнутого фрагмента (1002) и координатами второго симплифицированного изогнутого фрагмента (1004) находятся в пределах предварительно определенного максимального порога.
[00188] [Пункт 18] Компьютерное устройство для создания первой симплифицированной границы первого графического объекта (202, 302) и второй симплифицированной границы второго графического объекта (204, 404), причем первый графический объект (202, 302) и второй графический объект (204, 404) имеют соответственно первую исходную границу и вторую исходную границу, причем первая исходная граница и вторая исходная граница включают в себя изогнутые части границы, расположенные в непосредственной близости друг от друга; компьютерное устройство включает в себя процессор и носитель информации, на котором хранятся машиночитаемые инструкции, при исполнении которых процессор выполнен с возможностью выполнения этапов способа по любому из пп. 1-17.
[00189] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Приведенное описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем защиты настоящего технического решения ограничен только прилагаемой формулой изобретения.