СПОСОБ (ВАРИАНТЫ) И ЭЛЕКТРОННОЕ УСТРОЙСТВО (ВАРИАНТЫ) ОПРЕДЕЛЕНИЯ РАСПОЛОЖЕНИЯ ТОЧКИ ОТНОСИТЕЛЬНО ПЕРВОГО МНОГОУГОЛЬНИКА В МНОГОМЕРНОМ ПРОСТРАНСТВЕ
METHOD (VERSIONS) AND ELECTRONIC DEVICE (VERSIONS) FOR DETERMINATION OF POINT LOCATION RELATIVE TO THE FIRST POLYGON IN MULTIDIMENSIONAL SPACE

Область техники, к которой относится изобретение
Настоящая технология относится к области обработки данных, конкретнее к способам и устройствам определения того, находится ли точка внутри многоугольника в многомерном пространстве.
Уровень техники
Во многих компьютерных приложениях первые данные могут быть представлены в виде многоугольника, находящегося в двух или более измерениях многомерного пространства, а вторые данные могут быть представлены точкой в том же многомерном пространстве. Многоугольник может представлять собой цепочку сегментов, которая образует замкнутую кривую. Некоторые компьютерные приложения могут требовать определения того, находится ли точка, представляющая собой вторые данные, внутри многоугольника, представляющего собой первые данные. Определение того, находится ли точка, представляющая собой вторые данные, внутри многоугольника, представляющего собой первые данные, находит применение во многих сферах, включая такие как: обработка геометрических данных, например, компьютерной графики, компьютерное зрение, географические информационные системы (GIS), навигационные системы, планирование движений и/или системы автоматизированного проектирования (CAD).
Несмотря на то, что для определения того, находится ли точка внутри многоугольника, было разработано множество способов, все равно остается потребность в улучшениях, в частности - улучшениях, направленных на снижение потребляемых ресурсов процессора.
Раскрытие изобретения
Настоящая технология расширяет арсенал средств и методов указанного назначения с достижением указанного назначения во всех своих реализациях. Настоящая технология основана на выдвинутых изобретателем предположениях о том, что информация, получаемая во время создания областей, охватывающих сложный многоугольник, может в дальнейшем использоваться для определения того, находится ли точка внутри сложного многоугольника. Конкретнее, некоторые алгоритмы создания областей, охватывающих первый многоугольник, могут включать в себя явное или неявное определение областей, охватывающих области первого многоугольника, для дальнейшего улучшения степени точности областей, охватывающих первый многоугольник, таким образом, чтобы точка, которая была определена как находящаяся внутри зоны, ограниченной областями, рассматривалась как находящаяся внутри первого многоугольника и/или, таким образом, чтобы точка, которая была определена как находящаяся вне зоны, ограниченной областями, рассматривалась как не находящаяся внутри первого многоугольника. Несмотря на то, что в некоторых случаях, информация, определяющая первый набор областей, принимается случайной в процессе создания второго набора областей, которые более точно охватывают первый многоугольник, и, соответственно, эта информация опускается после создания второго набора областей, настоящая технология оставляет возможность сохранять эту информацию для эффективного анализа того, находится ли точка внутри первого многоугольника.
Одним из объектов настоящего изобретения является способ определения расположения точки относительно первого многоугольника в многомерном пространстве, включающий: получение процессором координат первого многоугольника, определяющих расположение и форму первого многоугольника в многомерном пространстве; получение процессором координат точки, определяющих расположение точки в многомерном пространстве; определение посредством процессора, по меньшей мере, одной области в многомерном пространстве, охватывающей соответствующую часть координат первого многоугольника и представляющей первый многоугольник в упрощенном виде; сохранение на машиночитаемом носителе координат по меньшей мере одной области; определение посредством процессора количества пересечений, по меньшей мере, одним лучом с вершиной в указанной точке по меньшей мере одной указанной области; и определение посредством процессора расположения точки внутри или снаружи многоугольника на основе количества пересечений.
Возможен вариант осуществления, в котором определяют количество пересечений посредством выполнения процессором трассировки луча.
Возможен вариант осуществления, в котором определение посредством процессора по меньшей мере одной области в многомерном пространстве, включает в себя: создание второго многоугольника, охватывающего первый многоугольник; определение первого набора областей во время создания первой версии второго многоугольника, причем первая версия второго многоугольника является первой полигональной цепью; и определение второго набора областей в момент создания второй версии второго многоугольника, причем вторая версия второго многоугольника представляет собой вторую полигональную цепь, обладающую большим числом линейных сегментов, чем первая полигональная цепь.
Возможен вариант осуществления, в котором: определение первого набора областей включает в себя определение того, что по меньшей мере один элемент из первого набора областей, обладает граничным расстоянием, превышающим пороговое значение; и определение второго набора областей включает в себя определение того, что ни один элемент из второго набора областей, не обладает граничным расстоянием, превышающим пороговое значение.
Возможен вариант осуществления, в котором дополнительно создают указание на то, что точка находится внутри первого многоугольника, если число пересечений, представляет собой нечетное число.
Возможен вариант осуществления, в котором дополнительно создают указание на то, что точка не находится внутри первого многоугольника, если число пересечений, представляет собой четное число.
Возможен вариант осуществления, в котором каждая из областей состоит из всех точек, находящихся не дальше граничного расстояния от линии охватывающей соответствующую часть первого многоугольника одной из областей, причем граничное расстояние представляет собой кратчайшее расстояние от линии до наиболее удаленной от линии точки в соответствующей части первого многоугольника.
Возможен вариант осуществления, в котором многомерное пространство обладает только двумя измерениями, и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из: всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
Согласно другому варианту осуществления способ выполняется процессором устройства и включает в себя: считывание с постоянного машиночитаемого носителя координат, по меньшей мере, одной области в многомерном пространстве, охватывающей соответствующую часть координат первого многоугольника и представляющей первый многоугольник в упрощенном виде; получение процессором координат точки, которые определяют позицию точки в многомерном пространстве; выполнение анализа координат области и координат точки для определения числа раз, когда луч, исходящий из точки в любом направлении, пересекает любую из множества областей; и создание на основе числа раз, когда луч, исходящий из точки в любом направлении, пересекает любую из множества областей, одного из: указания на то, что точка находится внутри первого многоугольника, и указания на то, что точка не находится внутри первого многоугольника.
Возможен вариант осуществления, в котором определяют количество пересечений посредством выполнения процессором трассировки луча.
Возможен вариант осуществления, в котором дополнительно создают указание на то, что точка находится внутри первого многоугольника, если число пересечений, представляет собой нечетное число.
Возможен вариант осуществления, в котором дополнительно создают указание на то, что точка не находится внутри первого многоугольника, если число пересечений, представляет собой четное число.
Возможен вариант осуществления, в котором каждая из областей состоит из всех точек, находящихся не дальше граничного расстояния от линии охватывающей соответствующую часть первого многоугольника одной из областей, причем граничное расстояние представляет собой кратчайшее расстояние от линии до наиболее удаленной от линии точки в соответствующей части первого многоугольника.
Возможен вариант осуществления, в котором каждая из областей состоит из всех точек, находящихся не дальше граничного расстояния от линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем граничное расстояние представляет собой кратчайшее расстояние от линии до наиболее удаленной от линии точки в соответствующей части первого многоугольника.
Возможен вариант осуществления, в котором каждая из областей состоит из всех точек, находящихся не дальше граничного расстояния от линии охватывающей соответствующую часть первого многоугольника одной из областей, причем граничное расстояние представляет собой кратчайшее расстояние от линии до наиболее удаленной от линии точки в соответствующей части первого многоугольника.
Возможен вариант осуществления, в котором многомерное пространство обладает только двумя измерениями, и каждая из областей представляет собой соответствующую зону многомерного пространства.
Возможен вариант осуществления, в котором многомерное пространство обладает только двумя измерениями, и каждая из областей представляет собой соответствующую зону многомерного пространства.
Возможен вариант осуществления, в котором многомерное пространство обладает только двумя измерениями, и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из: всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
Возможен вариант осуществления, в котором многомерное пространство обладает только двумя измерениями, и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из: всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
Возможен вариант осуществления, в котором многомерное пространство обладает только двумя измерениями, и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из: всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
Возможен вариант осуществления, в котором многомерное пространство обладает только двумя измерениями, и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из: всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
Возможен вариант осуществления, в котором многомерное пространство обладает только двумя измерениями, и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из: всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
Согласно еще одному варианту осуществления способ выполняется процессором устройства и включает в себя: получение процессором координат первого многоугольника, которые определяют позицию и форму первого многоугольника в многомерном пространстве; получение процессором координат точки, которые определяют позицию точки в многомерном пространстве; определение посредством процессора по меньшей мере одной области в многомерном пространстве, охватывающей соответствующую часть координат первого многоугольника и представляющей первый многоугольник в упрощенном виде; и сохранение на постоянном машиночитаемом носителе координат по меньшей мере одной из областей; при этом анализ координат области и координат точки выполняется для создания указания на то, что точка находится внутри первого многоугольника, и указания на то, что точка не находится внутри первого многоугольника.
Возможен вариант осуществления, в котором при определении по меньшей мере одной области в многомерном пространстве, охватывающей соответствующую часть координат первого многоугольника и представляющей первый многоугольник в упрощенном виде: создают посредством процессора второй многоугольник, охватывающий первый многоугольник; определяют посредством процессора первый набор областей во время создания первой версии второго многоугольника, причем первая версия второго многоугольника является первой полигональной цепью; и определяют посредством процессора второй набор областей в момент создания второй версии второго многоугольника, причем вторая версия второго многоугольника представляет собой вторую полигональную цепь, обладающую большим числом линейных сегментов, чем первая полигональная цепь.
Возможен вариант осуществления, в котором: при определении первого набора областей определяют посредством процессора, обладает ли по меньшей мере один элемент из первого набора областей, граничным расстоянием, превышающим пороговое значение; и при определении второго набора областей определяют посредством процессора, что ни один элемент из второго набора областей, не обладает граничным расстоянием, превышающим пороговое значение.
Возможен вариант осуществления, в котором дополнительно выполняют анализ координат области и координат точки; и создают одно из: указание на то, что точка находится внутри первого многоугольника, либо указание на то, что точка не находится внутри первого многоугольника на основе анализа координат области и координат точки.
Согласно другому варианту осуществления способ определения расположения точки относительно первого многоугольника в многомерном пространстве выполняется процессором устройства и включает в себя: считывание с постоянного машиночитаемого носителя координат по меньшей мере одной из множества областей в многомерном пространстве, каждая из которых охватывает соответствующую часть первого многоугольника, причем области охватывают первый многоугольник; получение процессором координат точки, которые определяют позицию точки в многомерном пространстве; выполнение анализа координат области и координат точки; и создание одного из: указания на то, что точка находится внутри первого многоугольника, указания на то, что точка не находится внутри первого многоугольника на основе анализа координат области и координат точки.
Возможен вариант осуществления, в котором при выполнении анализа координат точки и координат области выполняют на процессоре алгоритм трассировки луча.
Возможен вариант осуществления, в котором перед созданием одного из упомянутых указаний на основе анализа координат области и координат точки определяют посредством процессора числа пересечений лучом, исходящим из точки в любом направлении, любого из множества областей.
Возможен вариант осуществления, в котором после определения процессором числа пересечений лучом, исходящим из точки в любом направлении, любого из множества областей, дополнительно создают посредством процессора указание на то, что точка находится внутри первого многоугольника, если число пересечений представляет собой нечетное число.
Возможен вариант осуществления, после определения процессором числа пересечений лучом, исходящим из точки в любом направлении, любого из множества областей дополнительно создают указание на то, что точка не находится внутри первого многоугольника если число пересечений представляет собой четное число.
Возможен вариант осуществления, в котором каждая из областей состоит из всех точек, находящихся не дальше граничного расстояния от линии охватывающей соответствующую часть первого многоугольника одной из областей, причем граничное расстояние представляет собой кратчайшее расстояние от линии до наиболее удаленной от линии точки в соответствующей части первого многоугольника.
Возможен вариант осуществления, в котором многомерное пространство обладает только двумя измерениями, и каждая из областей представляет собой соответствующую зону многомерного пространства.
Возможен вариант осуществления, в котором многомерное пространство обладает только двумя измерениями, и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из: всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
Возможен вариант осуществления, в котором многомерное пространство обладает только двумя измерениями, и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из: всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
Возможен вариант осуществления, в котором многомерное пространство обладает только двумя измерениями, и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из: всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
Другим объектом настоящего изобретения является электронное устройство, содержащее: интерфейс сетевой связи; процессор, соединенный с интерфейсом сетевой связи, и выполнен с возможностью: получения через интерфейс сети передачи данных, запроса пользователя, связанного с нажатием пользователя на интерфейс ввода пользовательского устройства; получения первых координат многоугольника, определяющих позицию и форму первого многоугольника в многомерном пространстве, отображенном на интерфейсе вывода пользовательского устройства; получения координат точки, определяющих позицию точки в многомерном пространстве, связанном с нажатием пользователя; определения по меньшей мере, одной области в многомерном пространстве, охватывающей соответствующую часть координат первого многоугольника и представляющей первый многоугольник в упрощенном виде; и сохранения на постоянном машиночитаемом носителе координат по меньшей мере одной из областей; и сохранения координат области и координат точки, определяющих позицию точки в многомерном пространстве для создания указания на то, что точка находится внутри первого многоугольника, и указания на то, что точка не находится внутри первого многоугольника.
Возможен вариант осуществления, в котором процессор выполнен с возможностью выполнения алгоритма трассировки луча.
Согласно другому варианту осуществления, в котором электронное устройство, содержит: пользовательский интерфейс ввода; пользовательский интерфейс вывода; процессор, соединенный с пользовательским интерфейсом ввода и пользовательским интерфейсом вывода, процессор выполнен с возможностью: получения координат точки, определяющим позицию точки в многомерном пространстве, связанном с нажатием пользователя в пользовательском интерфейсе ввода; получения первых координат многоугольника, определяющим позицию и форму первого многоугольника в многомерном пространстве, которое отображается на интерфейсе вывода пользовательского устройства; определения в многомерном пространстве области, каждая из которых охватывает соответствующую часть координат первого многоугольника, и области охватывают первый многоугольник; сохранения на постоянном машиночитаемом носителе координат по меньшей мере одной из областей; и анализа координат области и координат точки, определяющих позицию точки в многомерном пространстве для создания указания на то, что точка находится внутри первого многоугольника, и указания на то, что точка не находится внутри первого многоугольника.
Возможен вариант осуществления, в котором выполнение анализа координат точки и координат области включает в себя выполнение алгоритма трассировки луча.
Возможен вариант осуществления, в котором создание одного из указания на то, что точка находится внутри первого многоугольника, и указания на то, что точка не находится внутри первого многоугольника на основе анализа координат области и координат точки выполняют после определения числа раз, когда луч, исходящий из точки в любом направлении, пересекает любую из множества областей.
Возможен вариант осуществления, в котором процессор выполнен с возможностью создания указания на то, что точка находится внутри первого многоугольника после определения того, что число раз, когда луч, исходящий из точки в любом направлении, пересекает любую из множества областей, представляет собой нечетное число.
Возможен вариант осуществления, в котором процессор выполнен с возможностью создания указания на то, что точка не находится внутри первого многоугольника после определения того, что число раз, когда луч, исходящий из точки в любом направлении, пересекает любую из множества областей, представляет собой четное число.
В контексте настоящего описания, если четко не указано иное, «электронное устройство» подразумевает под собой аппаратное и/или системное обеспечение, подходящее к решению соответствующей задачи. Таким образом, примерами электронных устройств (среди прочего) могут служить компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.) смартфоны, планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы.
В контексте настоящего описания, если четко не указано иное, "машиночитаемый носитель" подразумевает под собой носитель абсолютно любого типа и характера, не ограничивающие примеры включают в себя ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB-ключи, флеш-карты, твердотельные накопители и накопители на магнитной ленте.
В контексте настоящего описания, если четко не указано иное, "признак" информационного элемента может представлять собой сам информационный элемент или указатель, отсылку, ссылку или другой косвенный способ, позволяющий получателю указания найти сеть, память, базу данных или другой машиночитаемый носитель, из которого может быть извлечен информационный элемент. Например, признак файла может включать в себя сам файл (т.е. его содержимое), или же он может являться уникальным дескриптором файла, идентифицирующим файл по отношению к конкретной файловой системе, или каким-то другими средствами передавать получателю указание на сетевую папку, адрес памяти, таблицу в базе данных или другое место, в котором можно получить доступ к файлу. Как будет понятно специалистам в данной области техники, степень точности, необходимая для такого указания, зависит от степени первичного понимания того, как должна быть интерпретирована информация, которой обмениваются получатель и отправитель указателя. Например, если до установления связи между отправителем и получателем понятно, что признак информационного элемента принимает вид ключа базы данных для записи в конкретной таблице заранее установленной базы данных, содержащей информационный элемент, то передача ключа базы данных - это все, что необходимо для эффективной передачи информационного элемента получателю, несмотря на то, что сам по себе информационный элемент не передавался между отправителем и получателем указания.
В контексте настоящего описания, если конкретно не указано иное, слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной связи между этими существительными. Так, например, следует иметь в виду, что использование терминов "первый сервер" и "третий сервер " не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий "второй сервер" обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание "первого" элемента и "второго" элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, "первый" сервер и "второй" сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
Каждый вариант осуществления настоящей технологии включает по меньшей мере одну из вышеупомянутых целей и/или объектов. Следует иметь в виду, что некоторые объекты данной технологии, полученные в результате попыток достичь вышеупомянутой цели, могут удовлетворять другим целям, отдельно не указанным здесь.
Дополнительные и/или альтернативные преимущества вариантов осуществления настоящей технологии станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
Краткое описание чертежей
Для лучшего понимания настоящей технологии сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:
на Фиг. 1 показана диаграмма компьютерной системы, которая подходит для реализации настоящей технологии, и/или которая используется в сочетании с вариантами осуществления.
на Фиг. 2 показана схема сетевой вычислительной среды, подходящей для использования совместно с некоторыми вариантами осуществления настоящей технологии;
на Фиг. 3-5 показаны снимки экрана с приложением карт, которое отображает вариант осуществления настоящей технологии;
на Фиг. 6-8 показаны диаграммы, отображающие процесс определения областей многомерного пространства, каждая из которых охватывает соответствующую часть координат многоугольника, причем области охватывают первый многоугольник, процесс реализуется в соответствии с неограничивающими вариантами осуществления настоящей технологии;
на Фиг. 9-10 показаны диаграммы, отображающие процесс анализа координат области и координат точки для создания указания на то, что точка находится внутри или на то, что точка не находится внутри первого многоугольника, процесс реализуется в соответствии с неограничивающими вариантами осуществления настоящей технологии; и
на Фиг. 11 и 12 показаны блок-схемы, отображающие соответствующие этапы двух способов, реализуемых варианты осуществления настоящей технологии.
Также следует отметить, что чертежи выполнены не в масштабе, если специально не указано иное.
Осуществление изобретения
Все примеры и используемые здесь условные конструкции предназначены, главным образом, для того, чтобы упростить понимание принципов настоящей технологии, а не для установления границ ее объема. Следует также отметить, что специалисты в данной области техники могут разработать различные схемы, отдельно не описанные и не показанные здесь, но которые, тем не менее, воплощают собой принципы настоящей технологии и находятся в границах ее объема.
Кроме того, для ясности понимания, следующее описание касается достаточно упрощенных вариантов осуществления настоящей технологии. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящей технологии будут обладать гораздо большей сложностью.
Некоторые полезные примеры модификаций настоящей технологии также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящей технологии. Эти модификации не представляют собой исчерпывающего списка, и специалисты в данной области техники могут создавать другие модификации, остающиеся в границах объема настоящей технологии. Кроме того, те случаи, где не были представлены примеры модификаций, не должны интерпретироваться как то, что никакие модификации невозможны, и/или что то, что было описано, является единственным вариантом осуществления этого элемента настоящей технологии.
Более того, все заявленные здесь варианты осуществления технологии, равно как и конкретные их примеры, предназначены для обозначения их структурных и функциональных основ. Таким образом, например, специалистами в данной области техники будет очевидно, что представленные здесь блок-схемы представляют собой концептуальные иллюстративные схемы, отражающие принципы настоящей технологии. Аналогично, любые блок-схемы, диаграммы переходного состояния, псевдокоды и т.п. представляют собой различные процессы, которые могут быть представлены на машиночитаемом носителе и, таким образом, использоваться компьютером или процессором, вне зависимости от того, показан явно подобный компьютер или процессор или нет.
Функции различных элементов, показанных на фигурах, включая функциональный блок, обозначенный как "процессор", могут быть обеспечены с помощью специализированного аппаратного обеспечения или же аппаратного обеспечения, способного использовать подходящее программное обеспечение. Когда речь идет о процессоре, функции могут обеспечиваться одним специализированным процессором, одним общим процессором или множеством индивидуальных процессоров, причем некоторые из них могут являться общими. Более того, использование термина "процессор" или "контроллер" не должно подразумевать исключительно аппаратное обеспечение, способное поддерживать работу программного обеспечения, и может включать в себя, без установления ограничений, цифровой сигнальный процессор (DSP), сетевой процессор, интегральная схема специального назначения (ASIC), программируемую пользователем вентильную матрицу (FPGA), постоянное запоминающее устройство (ПЗУ) для хранения программного обеспечения, оперативное запоминающее устройство (ОЗУ) и энергонезависимое запоминающее устройство. Также может быть включено другое аппаратное обеспечение, обычное и/или специальное.
Программные модули или простые модули, представляющие собой программное обеспечение, которое может быть использовано здесь в комбинации с элементами блок-схемы или другими элементами, которые указывают на выполнение этапов процесса и/или текстовое описание. Подобные модели могут быть выполнены на аппаратном обеспечении, показанном напрямую или косвенно.
С учетом этих примечаний, далее будут рассмотрены некоторые не ограничивающие варианты осуществления.
На Фиг. 1 показана диаграмма компьютерной системы 100, которая подходит для некоторых вариантов осуществления настоящей технологии, компьютерная система 100 включает в себя различные аппаратные компоненты, включая один или несколько одно- или многоядерных процессоров, которые представлены процессором 110, твердотельный накопитель 120, ОЗУ 130, интерфейс 140 монитора, и интерфейс 150 ввода/вывода.
Связь между различными компонентами компьютерной системы 100 может осуществляться с помощью одной или несколько внутренних и/или внешних шин 160 (например, шины PCI, универсальной последовательной шины, высокоскоростной шины IEEE 1394, шины SCSI, шины Serial ATA и так далее), с которыми электронно соединены различные аппаратные компоненты. Интерфейс 140 монитора может быть соединен с монитором 142 (например, через HDMI-кабель 144), наблюдаемым пользователем 170, интерфейс 150 ввода/вывода может быть соединен с клавиатурой 151 (например, через USB-кабель 153) и мышью 152 (например, через USB-кабель 154), как клавиатура 151, так и мышь 152 используются пользователем 170.
В соответствии с вариантами осуществления твердотельный накопитель 120 хранит программные инструкции, подходящие для загрузки в ОЗУ 130, и использующиеся процессором 110 для определения того, находится ли точка внутри многоугольника в многомерном пространстве. Например, программные инструкции могут представлять собой часть библиотеки или приложение.
На Фиг. 2 показана сетевая вычислительная среда 300, подходящая для использования совместно с некоторыми вариантами осуществления настоящей технологии, сетевая вычислительная среда 300 содержит смартфон 310 (например, Apple iPhone™ или Samsung Galaxy S4™) с сенсорным экраном 312 для отображения информации пользователю 170 и получения сенсорных команд от пользователя 170, сервер 320 карт соединен со смартфоном 310 через сеть 301 передачи данных (например, Интернет), и GPS-спутник 330 передает GPS-сигнал 332 смартфону 310.
Наряду с сенсорным экраном 312 смартфон 310 также включает в себя внутренние аппаратные компоненты, такие как один или несколько многоядерных процессоров, которые представлены в виде процессора 110, ОЗУ 130, каждый компонент является аналогом к соответственно пронумерованным компонентам компьютерной системы 100, показанным на Фиг. 1, также как и сетевого интерфейса (не показан) для связи с сервером 320 карт через сеть 301 передачи данных, и GPS-ресивер (не показан) для получения GPS-сигнала 332 от GPS-спутника 330.
На Фиг. 3 представлено приложение 400 карт, работающее на процессоре 110 смартфона 310, представленного на Фиг. 2, в возможном варианте отображения на сенсорном экране 312. Приложение 400 карт отображает карту 401, включающую в себя зону 402, ограниченную многоугольником 410, который представляет собой замкнутую кривую, определяющую границы зоны 402. Например, программные инструкции приложения 400 карт при выполнении их процессором 110 смартфона 310 могут инициировать процессор 110 получать запрос от пользователя 170 через сенсорный экран 312, чтобы определить положение смартфона 310, и чтобы определить, находится ли смартфон 310 в пределах зоны 402. В результате процессор 110 может направлять сетевой интерфейс смартфона 310 для получения подходящей картографической информации от сервера 320 карт через сеть 301 передачи данных, представленную на Фиг. 2.
Как показано на Фиг. 4 и Фиг. 5, для того, чтобы определить GPS-положение 412 смартфона 310 программные инструкции приложения 400 карт могут далее инициировать процессор 110 направлять GPS-ресивер смартфона 310 на получение GPS-положения 412 смартфона 310 с помощью декодирования GPS-сигнала 332, полученного от GPS-спутника 330, представленного на Фиг. 2. Например, пользователь 170 может ехать вдоль дороги 414 со смартфоном 310. На каждой из Фиг. 4 и 5 представлены потенциальные снимки экранов с приложением 400 карт, которые могут возникнуть на сенсорном экране 312 смартфона 310, в зависимости от того, как картографическое приложение 400 определило GPS-положение 412 смартфона 310 - внутри или снаружи зоны 402.
Конкретнее, на Фиг. 4 показано то, как именно карта 401 может выглядеть на сенсорном экране 312, если картографическое приложение 400 определило, что точка, отображающая GPS-положение 412, находится в зоне 402.
На Фиг. 5 показано то, как именно карта 401 может выглядеть на сенсорном экране 312 смартфона 310, если картографическое приложение 400 определило, что точка, отображающая GPS-положение 412, не находится в зоне 402. Картографическое приложение 400 далее может информировать пользователя 170, едущего вдоль дороги 414 о том, что он находится вне пределов зоны 402.
Со ссылками Фиг. 1 - Фиг. 5 были описаны некоторые варианты проблемы определения того, находится ли точка внутри многоугольника в многомерном пространстве, далее будет описан общий вариант решения подобной задачи на Фиг. 6-10. Конкретнее, на Фиг. 6-10 создаются области, каждая из которых охватывает соответствующую часть первого многоугольника 600 и представляет собой замкнутую кривую. Области создаются с помощью определения областей, каждая из которых охватывает соответствующую часть первого многоугольника 600, как часть процесса упрощения первого многоугольника 600 в соответствии с вариантом осуществления хорошо известного алгоритма Рамера-Дугласа-Пекера (RDP).
На Фиг. 6 представлена двумерная замкнутая кривая, отображаемая в виде многоугольника 600. Замкнутая кривая пролегает от точки А 6011 до точки В 6012, и возвращается в точку А 6011.
На Фиг. 7 первая кривая охвата, состоящая из одиночного линейного сегмента 610, представляет собой первый охват первого многоугольника 600. В соответствии с данным вариантом осуществления каждый линейный сегмент первой кривой охвата (например, линейный сегмент 610) входит в определенную область, представляющую собой зону, которая состоит из двух зон, и каждая определена соответствующим граничным расстоянием от соответствующей стороны линейного сегмента до наиболее удаленной точки.
Например, на Фиг. 7 представлен результат первой итерации по алгоритму RDP, выполненном на первом многоугольнике 600. Область состоит из зон 620 и 630, которые охватывают линейный сегмент 610 первой кривой охвата. Наиболее удаленная точка С 6013 от первой стороны линейного сегмента 610 первого многоугольника 600, расположенная между точкой А 6011 и точкой В 6012, определяет первое граничное расстояние зоны 620, а удаленная точка D 6014 от второй стороны линейного сегмента 610 первого многоугольника 600, расположенная между точкой В 6012 и точкой А 6011, определяет граничное расстояние зоны 630.
Таким образом, в варианте осуществления, показанном на Фиг. 7, каждая область определена двумя граничными расстояниями, по одному в каждом направлении от соответствующей стороны линейного сегмента первой кривой охвата. Специалистам в данной области техники будет ясно, что тип области (зона в случае двумерного пространства) является только вариантов осуществления и может быть использован в других вариантах осуществления настоящей технологии.
На Фиг. 8 одиночный линейный сегмент 610 первой кривой охвата, представленной на Фиг. 7, был заменен на четыре линейных сегмента 611-614 второй кривой охвата. Четыре линейных сегмента 611-614 определяют второй многоугольник 650, который используется в создании упрощенных областей первого многоугольника с помощью определенной степени точности. Линейный сегмент 611 соединяет точку А 6011 с точкой С 6013, которые были определены как наиболее удаленные от первой стороны линейного сегмента 610. Линейный сегмент 612 соединяет точку С 6013 с точкой В 6012. Линейный сегмент 613 соединяет точку А 6011 с точкой D 6014, которые были определены как наиболее удаленные от второй стороны линейного сегмента 610. Линейный сегмент 614 соединяет точку D 6014 с точкой В 6012.
На Фиг. 7 каждый из линейных сегментов 611-614 находится в соответствующей области, являющейся зоной, которая состоит из двух зон, каждая из которых была по очереди с помощью соответствующего граничного расстояния от точки на соответствующей части первого многоугольника 600, наиболее удаленной от одной стороны соответствующей линейного сегмента (одного из сегментов 611-614), охватывающего эту часть первого многоугольника 600.
Таким образом, линейный сегмент 612 находится в области, состоящей из зоны 622, определяемой первым граничным расстоянием для линейного сегмента 612 от наиболее удаленной точки H 6018 до первой стороны линейного сегмента 612, и зоны 632 определяемой вторым граничным расстоянием для линейного сегмента 612 от наиболее удаленной точки I 6019 до второй стороны линейного сегмента 612. Линейный сегмент 613 находится в области, состоящей из зоны 623, определяемой первым граничным расстоянием для линейного сегмента 613 от наиболее удаленной точки F 6016 до первой стороны линейного сегмента 613, и зоны 633 определяемой вторым граничным расстоянием для линейного сегмента 613 от наиболее удаленной точки G 6017 до второй стороны линейного сегмента 613. Линейный сегмент 614 находится в области, состоящей из зоны 624, определяемой первым граничным расстоянием для линейного сегмента 614 от наиболее удаленной точки J 60110 до первой стороны линейного сегмента 614, и зоны 634 определяемой вторым граничным расстоянием для линейного сегмента 614 от наиболее удаленной точки K 60111 до второй стороны линейного сегмента 614.
Область, охватывающая линейный сегмент 611 представляет собой особый случай, в котором граничное расстояние от одной стороны линейного сегмента 611 равно нулю, поскольку с этой стороны линейного сегмента 611 отсутствует область первого многоугольника 600 между точкой А 6011 и С 6013. Таким образом, область, охватывающая линейный сегмент 611 представляет собой область, состоящую из первой зоны 621, определяемой первым граничным расстоянием для линейного сегмента 611 от наиболее удаленной точки Ε 6015 до первой стороны линейного сегмента 611, и нулевой зоны, соответствующей нулевому граничному расстоянию от второй стороны линейного сегмента 611.
В соответствии с настоящим примером варианта осуществления алгоритма RDP, создание областей, охватывающих первый многоугольник 600, может прекратиться после одной итерации, поскольку может быть определено, что ни одна из областей среди тех, что показаны на Фиг. 8, не обладает наибольшим граничным расстоянием (превышающим первое граничное расстояние и второе граничное расстояние), превышающим пороговое значение. Пороговое значение устанавливает степень точности охвата для первого многоугольника 600 с помощью областей. "Конечная" версия областей, таким образом, может состоять из первой области, состоящей из зоны 621, второй области, состоящей из зон 622 и 623, третьей области, состоящей из зон 624 и 634, и четвертой области, состоящей из зон 623 и 633, как показано на Фиг. 8. Специалистам в данной области техники должно быть очевидно, что последовательные итерации алгоритма RDP могут выполняться и в "конечной" версии областей без выхода за границы настоящей технологии. Подобные последовательные итерации могут привести к созданию другой версии областей, которая обладает большим количеством областей, чем "конечная" версия и, соответственно, большей степенью точности охвата первого многоугольника 600, чем степень точности охвата "конечной" версии областей. Степень точности, соответственно, может быть связана с числом итераций в алгоритме RDP.
На Фиг. 9 представлен первый многоугольник 600 в том же виде, что и на Фиг. 8, и "конечная" версия областей, являющийся упрощенным видом первого многоугольника 600, состоит из первой области, состоящей из зоны 621, второй области, состоящей из зон 622 и 623, третьей области, состоящей из зон 624 и 634, и четвертой области, состоящей из зон 623 и 633. Кроме того, ключевая точка 652 находится вне границ замкнутой кривой, определенной первым многоугольником 600.
Ключевая точка 652 представляет собой общий случай точки, для которой определяется, находится ли она внутри первого многоугольника 600. В более конкретных случаях, например, приложение 400 карт (Фиг. 4 и Фиг. 5), ключевая точка 652 и первый многоугольник 600 могут являться, в качестве неограничивающих примеров, GPS-положение 412 и замкнутую кривую, представляющие собой границы зоны 402 соответственно.
В соответствии с вариантами осуществления настоящей технологии определение того, находится ли ключевая точка 652 внутри первого многоугольника 600, может выполняться с помощью анализа координат областей, каждая из которых охватывает соответствующую часть первого многоугольника 600 в многомерном пространстве, а координаты ключевой точки определяют положение ключевой точки 652 в многомерном пространстве. Анализ координат области и координат ключевой точки позволяет определить, находится ли ключевая точка 652 внутри области, ограниченной областями, охватывающими первый многоугольник 600, и, соответственно, определить, находится ли ключевая точка 652 внутри первого многоугольника 600.
В соответствии с вариантами осуществления настоящей технологии анализ координат области и координат ключевой точки включает в себя выполнение известного алгоритма трассировки луча. В соответствии с этим алгоритмом, определение того, находится ли ключевая точка 652 внутри зоны, ограниченной областями, охватывающими первый многоугольник 600, может выполняться с помощью определения числа раз, когда луч 670, исходящий из ключевой точки 652 в любом направлении, пересекает любые области, охватывающие первый многоугольник 600. В примерном варианте осуществления, представленном на Фиг. 9, луч 670 исходит в направлении второй области, состоящей из зон 622 и 623, и пересекает вторую область и четвертую область, состоящую из зон 623 и 633. При пересечении второй и четвертой областей, луч 670 пересекает второй многоугольник 650 на точках пересечения 660 и 662. Другими словами, число раз, когда луч 670 пересекает области, охватывающие первый многоугольник 600, равно двум. Тем не менее, в соответствии с алгоритмом трассировки луча, если число раз, когда луч 670 пересекает области, охватывающие первый многоугольник 600, является четным числом, то будет определено, что ключевая точка 652 не находится внутри зоны, ограниченной областями, охватывающими первый многоугольник 600, и, соответственно, ключевая точка 652 не находится внутри первого многоугольника 600. Как будет ясно специалистам в данной области техники, испускание луча из ключевой точки 652 в любом другом направлении, кроме направления луча 670, число раз, когда луч пересекает области, охватывающие первый многоугольник 600, будет оставаться четным числом. В примерном варианте осуществления, представленном на Фиг. 9, четное число равно нулю или двум.
На Фиг. 10 представлен первый многоугольник 600 в том же виде, что и на Фиг. 8, и "конечная" версия областей, охватывающих первый многоугольник 600, состоит из первой области, состоящей из зоны 621, второй области, состоящей из зон 622 и 623, третьей области, состоящей из зон 624 и 634, и четвертой области, состоящей из зон 623 и 633. Кроме того, ключевая точка 654 находится внутри замкнутой кривой, определенной первым многоугольником 600. Аналогично ключевой точке 652, ключевая точка 654 представляет собой общий случай точки, для которой определяется, находится ли она внутри первого многоугольника 600.
В примерном варианте осуществления, представленном на Фиг. 10, луч 672 исходит в направлении четвертой области, состоящей из зон 623 и 633, и пересекает четвертую область. При пересечении четвертой области, луч 672 пересекает второй многоугольник 650 на точке пересечения 664. Другими словами, число раз, когда луч 672 пересекает области, охватывающие первый многоугольник 600, равно одному. Тем не менее, в соответствии с алгоритмом трассировки луча, если число раз, когда луч 672 пересекает области, охватывающие первый многоугольник 600, является нечетным числом, то будет определено, что ключевая точка 654 находится внутри зоны, ограниченной областями, охватывающими первый многоугольник 600, и, соответственно, ключевая точка 654 находится внутри первого многоугольника 600. Как будет ясно специалистам в данной области техники, при испускании луча из ключевой точки 654 в любом другом направлении, кроме направления луча 672, число раз, когда луч пересекает области, охватывающие первый многоугольник 600, будет оставаться нечетным числом. В примерном варианте осуществления технологии, представленном на Фиг. 10, нечетное число - один.
На Фиг. 11 представлена блок-схема, соответствующая примерному варианту осуществления настоящей технологии. Конкретнее, на Фиг. 11 представлен осуществляемый на компьютере способ 700 определения расположения точки относительно многоугольника в многомерном пространстве, способ выполняется процессором электронного устройства. Способ 700 может выполняться, например, в контексте компьютерной системы 100, представленной на Фиг. 1, или в контексте смартфона 310, представленного на Фиг. 2, процессором 110, который выполняет программные инструкции, загруженные в ОЗУ 130 с твердотельного накопителя 120.
На этапе 710 координаты первого многоугольника определяют позицию и форму первого многоугольника в многомерном пространстве. Возвращаясь к неограничивающему примеру приложения 400 карт, оценка координат многоугольника может относиться к получению координат границ зоны 402. На этапе 720 происходит получение доступа к координатам точки, которые определяют позицию точки в многомерном пространстве. Возвращаясь к неограничивающему примеру приложения 400 карт, оценка координат точки может относиться к получению координат GPS-положения 412.
На этапе 730 определяются области в многомерном пространстве, охватывающие соответствующую часть координат первого многоугольника и представляющие первый многоугольник в упрощенном виде. В некоторых вариантах осуществления, определение в многомерном пространстве областей, каждая из которых охватывает соответствующую часть координат первого многоугольника может включать в себя создание второго многоугольника, охватывающего первый многоугольник. Определение областей также может включать в себя определение первого набора областей в момент создания первой версии второго многоугольника, причем первая версия второго многоугольника представляет собой первую полигональную цепь. Определение областей далее также может включать в себя определение второго набора областей в момент создания второй версии второго многоугольника, причем вторая версия второго многоугольника представляет собой вторую полигональную цепь, обладающую большим числом линейных сегментов, чем первая полигональная цепь. Например, определение первого набора областей может включать в себя определение того, что по меньшей мере один элемент из первого набора областей, обладает граничным расстоянием, превышающим пороговое значение, предполагающее необходимость создания лучшего охвата первого набора областей. Может быть необходимо определить второй набор областей, который может включать в себя определение того, что ни один из элементов из второго набора не обладает граничным расстоянием, превышающим пороговое значение, предполагающее, что второй набор областей является достаточно точным.
Тем не менее, в некоторых случаях, может быть создан третий, четвертый и пятый набор областей, до тех пор пока ни один из элементов из набора областей будет обладать граничным расстоянием, превышающим пороговое значение. Например, области, охватывающие первый многоугольник может быть создан рекурсивно или итеративно путем выполнения алгоритма Рамера-Дугласа-Пекера (RDP), как было описано со ссылкой на Фиг. 6-8.
В некоторых примерах, каждая из областей может состоять из всех точек, находящихся не дальше граничного расстояния от линии охвата соответствующей части первого многоугольника одной из областей, причем граничное расстояние представляет собой кратчайшее расстояние от линии до наиболее удаленной от линии точки в соответствующей части первого многоугольника.
В некоторых других примерах, многомерное пространство обладает двумя измерениями, и каждая из областей может представлять собой соответствующую зону в многомерном пространстве, состоящую из всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника. Каждая из областей также может представлять собой соответствующую зону в многомерном пространстве, состоящую из всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
На этапе 730 координаты области по меньшей мере одной из областей хранятся на постоянном машиночитаемом носителе (примеры которого включают в себя ОЗУ 130 и твердотельный накопитель 120 в компьютерной системе 100).
На этапе 750 выполняется анализ координат области и координат точки, которые определяют позицию точки в многомерном пространств. Анализ может выполняться тем же процессором 110 того же электронного устройства (например, компьютерной системы 100 или смартфона 310), который определял области, охватывающие соответствующие части координат первого многоугольника, или же он может выполняться совершенно другим процессором другого электронного устройства, которое получило координаты области от процессора 110 электронного устройства, например, через сеть передачи данных (например, сеть 301 передачи данных).
Например, анализ может включать в себя оценку того, находится ли точка внутри первого многоугольника. В данном примере выполнение анализа может включать в себя выполнение алгоритма трассировки лучей. В другом примере, анализ может включать в себя определение числа раз, когда луч, исходящий из точки в любом направлении, пересекает любую из множества областей. Далее анализ может включать в себя определение того, является ли число раз, когда луч, исходящий из точки в любом направлении, пересекает любую из множества областей, нечетным числом, и в этом случае может быть создано указание на то, что точка находится внутри первого многоугольника. Далее анализ также может включать в себя определение того, является ли число раз, когда луч, исходящий из точки в любом направлении, пересекает любую из множества областей, четным числом, и в этом случае может быть создано указание на то, что точка не находится внутри первого многоугольника.
На этапе 760 на основе анализа пользователю электронного устройства предоставляется указание на то, что точка находится внутри первого многоугольника, или указание на то, что точка не находится внутри первого многоугольника. Например, со ссылкой а приложение 400 карт, пользователю 170 будет предоставлено указание на то, что GPS-положение 412 не находится внутри зоны 402.
В других случаях, как описано выше, анализ может быть выполнен не в виде части способа 700, но как независимый выполняемый на компьютере способ 800 для определения, находится ли точка внутри многоугольника в многомерном пространстве, как показано на Фиг. 12. Например, способ 800 может выполняться в контексте другой компьютерной системы 100, обладающей координатами области, хранящимися на постоянном машиночитаемом носителе, например, твердотельном накопителе 120 или ОЗУ 130.
На этапе 810 с постоянного машиночитаемого носителя считываются координаты по меньшей мере одной из множества областей в многомерном пространстве, охватывающих соответствующую часть первого многоугольника, и представляющих первый многоугольник в упрощенном виде.
На этапе 820, как на этапе 720, представленном выше, происходит получение координат точки, которые определяют позицию точки в многомерном пространств.
На этапе 830, как на этапе 750, представленном выше, выполняется анализ координат области и координат точки.
На этапе 840, как на этапе 760, представленном выше, на основе анализа пользователю электронного устройства предоставляется указание на то, что точка находится внутри первого многоугольника или указание на то, что точка не находится внутри первого многоугольника.
Модификации и улучшения вышеописанных вариантов осуществления настоящей технологии будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящей технологии ограничен только объемом прилагаемой формулы изобретения.