RU2608870C2 - Способ (варианты) и электронное устройство (варианты) определения расположения точки относительно первого многоугольника в многомерном пространстве - Google Patents

Способ (варианты) и электронное устройство (варианты) определения расположения точки относительно первого многоугольника в многомерном пространстве Download PDF

Info

Publication number
RU2608870C2
RU2608870C2 RU2014143789A RU2014143789A RU2608870C2 RU 2608870 C2 RU2608870 C2 RU 2608870C2 RU 2014143789 A RU2014143789 A RU 2014143789A RU 2014143789 A RU2014143789 A RU 2014143789A RU 2608870 C2 RU2608870 C2 RU 2608870C2
Authority
RU
Russia
Prior art keywords
polygon
point
line
coordinates
multidimensional space
Prior art date
Application number
RU2014143789A
Other languages
English (en)
Other versions
RU2014143789A (ru
Inventor
Антон Васильевич КОРЗУНОВ
Original Assignee
Общество С Ограниченной Ответственностью "Яндекс"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество С Ограниченной Ответственностью "Яндекс" filed Critical Общество С Ограниченной Ответственностью "Яндекс"
Priority to RU2014143789A priority Critical patent/RU2608870C2/ru
Priority to US15/521,128 priority patent/US10192324B2/en
Priority to PCT/IB2015/050970 priority patent/WO2016067116A1/en
Publication of RU2014143789A publication Critical patent/RU2014143789A/ru
Application granted granted Critical
Publication of RU2608870C2 publication Critical patent/RU2608870C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • Image Generation (AREA)

Abstract

Группа изобретений относится к компьютерным системам, направленным на определение расположения точки относительно многоугольника в многомерном пространстве. Техническим результатом является расширение арсенала технических средств для определения расположения точки относительно многоугольника в многомерном пространстве. Предложен способ определения расположения точки относительно первого многоугольника в многомерном пространстве. Способ содержит этап, на котором осуществляют получение процессором координат первого многоугольника, определяющих расположение и форму первого многоугольника в многомерном пространстве, а также осуществляют получение процессором координат точки, определяющих расположение точки в многомерном пространстве. Далее определяют посредством процессора по меньшей мере одну область в многомерном пространстве, включающую в себя соответствующую часть координат первого многоугольника и представляющую первый многоугольник в упрощенном виде. 6 н. и 37 з.п. ф-лы, 12 ил.

Description

Область техники, к которой относится изобретение
Настоящая технология относится к области обработки данных, конкретнее к способам и устройствам определения того, находится ли точка внутри многоугольника в многомерном пространстве.
Уровень техники
Во многих компьютерных приложениях первые данные могут быть представлены в виде многоугольника, находящегося в двух или более измерениях многомерного пространства, а вторые данные могут быть представлены точкой в том же многомерном пространстве. Многоугольник может представлять собой цепочку сегментов, которая образует замкнутую кривую. Некоторые компьютерные приложения могут требовать определения того, находится ли точка, представляющая собой вторые данные, внутри многоугольника, представляющего собой первые данные. Определение того, находится ли точка, представляющая собой вторые данные, внутри многоугольника, представляющего собой первые данные, находит применение во многих сферах, включая такие как: обработка геометрических данных, например, компьютерной графики, компьютерное зрение, географические информационные системы (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, представленном выше, на основе анализа пользователю электронного устройства предоставляется указание на то, что точка находится внутри первого многоугольника или указание на то, что точка не находится внутри первого многоугольника.
Модификации и улучшения вышеописанных вариантов осуществления настоящей технологии будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящей технологии ограничен только объемом прилагаемой формулы изобретения.

Claims (105)

1. Способ определения расположения точки относительно первого многоугольника в многомерном пространстве, включающий:
получение процессором координат первого многоугольника, определяющих расположение и форму первого многоугольника в многомерном пространстве;
получение процессором координат точки, определяющих расположение точки в многомерном пространстве;
определение посредством процессора по меньшей мере одной области в многомерном пространстве, включающей в себя соответствующую часть координат первого многоугольника и представляющей первый многоугольник в упрощенном виде;
сохранение на машиночитаемом носителе координат по меньшей мере одной области;
определение посредством процессора количества пересечений по меньшей мере одним лучом с вершиной в указанной точке по меньшей мере одной указанной области;
и определение посредством процессора указания расположения точки внутри или снаружи многоугольника на основе количества пересечений.
2. Способ по п. 1, в котором определяют количество пересечений посредством выполнения процессором трассировки луча.
3. Способ по п. 1, в котором определение посредством процессора по меньшей мере одной области в многомерном пространстве включает в себя:
создание второго многоугольника, охватывающего первый многоугольник;
определение первого набора областей во время создания первой версии второго многоугольника, причем первая версия второго многоугольника является первой полигональной цепью; и
определение второго набора областей в момент создания второй версии второго многоугольника, причем вторая версия второго многоугольника представляет собой вторую полигональную цепь, обладающую большим числом линейных сегментов, чем первая полигональная цепь.
4. Способ по п. 3, в котором:
определение первого набора областей включает в себя определение того, что по меньшей мере один элемент из первого набора областей, обладает граничным расстоянием, превышающим пороговое значение; и
определение второго набора областей включает в себя определение того, что ни один элемент из второго набора областей не обладает граничным расстоянием, превышающим пороговое значение.
5. Способ по любому из пп. 1-4, в котором дополнительно создают указание на то, что точка находится внутри первого многоугольника, если число пересечений представляет собой нечетное число.
6. Способ по любому из пп. 1-4, в котором дополнительно создают указание на то, что точка не находится внутри первого многоугольника, если число пересечений, представляет собой четное число.
7. Способ по любому из пп. 1-4, в котором каждая из областей состоит из всех точек, находящихся не дальше граничного расстояния от линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем граничное расстояние представляет собой кратчайшее расстояние от линии до наиболее удаленной от линии точки в соответствующей части первого многоугольника.
8. Способ по любому из пп. 1-4, в котором многомерное пространство обладает только двумя измерениями и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из:
всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и
всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
9. Способ определения расположения точки относительно первого многоугольника в многомерном пространстве, способ выполняется процессором устройства для определения расположения точки относительно многоугольника и включает в себя:
считывание с постоянного машиночитаемого носителя координат по меньшей мере одной из множества областей в многомерном пространстве, каждая из которых охватывает соответствующую часть первого многоугольника, причем области охватывают первый многоугольник;
получение указанным процессором координат точки, которые определяют позицию точки в многомерном пространстве;
выполнение анализа координат области и координат точки для определения числа раз, когда луч, исходящий из точки в любом направлении, пересекает любую из множества областей; и
создание на основе числа раз, когда луч, исходящий из точки в любом направлении, пересекает любую из множества областей, одного из: указания на то, что точка находится внутри первого многоугольника, и указания на то, что точка не находится внутри первого многоугольника.
10. Способ по п. 9, в котором в котором определяют количество пересечений посредством выполнения процессором трассировки луча.
11. Способ по любому из пп. 9-10, в котором дополнительно создают указание на то, что точка находится внутри первого многоугольника, если число пересечений представляет собой нечетное число.
12. Способ по любому из пп. 9-10, в котором дополнительно создают указание на то, что точка не находится внутри первого многоугольника, если число пересечений представляет собой четное число.
13. Способ по любому из пп. 9-10, в котором каждая из областей состоит из всех точек, находящихся не дальше граничного расстояния от линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем граничное расстояние представляет собой кратчайшее расстояние от линии до наиболее удаленной от линии точки в соответствующей части первого многоугольника.
14. Способ по п. 11, в котором каждая из областей состоит из всех точек, находящихся не дальше граничного расстояния от линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем граничное расстояние представляет собой кратчайшее расстояние от линии до наиболее удаленной от линии точки в соответствующей части первого многоугольника.
15. Способ по п. 12, в котором каждая из областей состоит из всех точек, находящихся не дальше граничного расстояния от линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем граничное расстояние представляет собой кратчайшее расстояние от линии до наиболее удаленной от линии точки в соответствующей части первого многоугольника.
16. Способ по п. 13, в котором многомерное пространство обладает только двумя измерениями и каждая из областей представляет собой соответствующую зону многомерного пространства.
17. Способ по любому из пп. 14-15, в котором многомерное пространство обладает только двумя измерениями и каждая из областей представляет собой соответствующую зону многомерного пространства.
18. Способ по любому из пп. 9-10, в котором многомерное пространство обладает только двумя измерениями и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из:
всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и
всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
19. Способ по п. 13, в котором многомерное пространство обладает только двумя измерениями и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из:
всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и
всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
20. Способ по любому из пп. 14-16, в котором многомерное пространство обладает только двумя измерениями и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из:
всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и
всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
21. Способ по п. 17, в котором многомерное пространство обладает только двумя измерениями и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из:
всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и
всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
22. Способ по п. 18, в котором многомерное пространство обладает только двумя измерениями и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из:
всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и
всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
23. Способ определения расположения точки относительно первого многоугольника в многомерном пространстве, способ выполняется процессором устройства для определения расположения точки относительно многоугольника и включает в себя:
получение указанным процессором координат первого многоугольника, которые определяют позицию и форму первого многоугольника в многомерном пространстве;
получение указанным процессором координат точки, которые определяют позицию точки в многомерном пространстве;
определение посредством указанного процессора в многомерном пространстве по меньшей мере одной области в многомерном пространстве, охватывающей соответствующую часть координат первого многоугольника и представляющей первый многоугольник в упрощенном виде; и
сохранение на постоянном машиночитаемом носителе координат по меньшей мере одной из областей;
при этом анализ координат области и координат точки выполняется для создания указания на то, что точка находится внутри первого многоугольника, и указания на то, что точка не находится внутри первого многоугольника;
причем анализ координат области и координат точки осуществляется посредством определения количества пересечений по меньшей мере одного луча, исходящего из точки в любом направлении, и по меньшей мере одной указанной областью.
24. Способ по п. 23, в котором при определении по меньшей мере одной области в многомерном пространстве, охватывающей соответствующую часть координат первого многоугольника и представляющей первый многоугольник в упрощенном виде:
создают посредством процессора второй многоугольник, охватывающий первый многоугольник;
определяют посредством процессора первый набор областей во время создания первой версии второго многоугольника, причем первая версия второго многоугольника является первой полигональной цепью; и
определяют посредством процессора второй набор областей в момент создания второй версии второго многоугольника, причем вторая версия второго многоугольника представляет собой вторую полигональную цепь, обладающую большим числом линейных сегментов, чем первая полигональная цепь.
25. Способ по п. 24, в котором:
при определении первого набора областей определяют посредством процессора, обладает ли по меньшей мере один элемент из первого набора областей граничным расстоянием, превышающим пороговое значение; и
при определении второго набора областей определяют посредством процессора, что ни один элемент из второго набора областей не обладает граничным расстоянием, превышающим пороговое значение.
26. Способ по п. 23, в котором дополнительно выполняют анализ координат области и координат точки; и
создают одно из: указание на то, что точка находится внутри первого многоугольника, либо указание на то, что точка не находится внутри первого многоугольника, на основе анализа координат области и координат точки.
27. Способ определения расположения точки относительно первого многоугольника в многомерном пространстве, способ выполняется процессором устройства для определения расположения точки относительно многоугольника и включает в себя:
считывание с постоянного машиночитаемого носителя координат по меньшей мере одной области в многомерном пространстве, охватывающей соответствующую часть координат первого многоугольника и представляющей первый многоугольник в упрощенном виде;
получение указанным процессором координат точки, которые определяют позицию точки в многомерном пространстве;
выполнение анализа координат области и координат точки; и
создание одного из: указания на то, что точка находится внутри первого многоугольника, указания на то, что точка не находится внутри первого многоугольника, на основе анализа координат области и координат точки;
причем анализ координат области и координат точки осуществляется посредством определения количества пересечений по меньшей мере одного луча, исходящего из точки в любом направлении, и по меньшей мере одной указанной областью.
28. Способ по п. 27, в котором при выполнении анализа координат точки и координат области выполняют на процессоре алгоритм трассировки луча.
29. Способ по п. 27, в котором перед созданием одного из упомянутых указаний на основе анализа координат области и координат точки определяют посредством процессора числа пересечений лучом, исходящим из точки в любом направлении, любого из множества областей.
30. Способ по п. 29, в котором после определения процессором числа пересечений лучом, исходящим из точки в любом направлении, любого из множества областей, дополнительно создают посредством процессора указание на то, что точка находится внутри первого многоугольника, если число пересечений представляет собой нечетное число.
31. Способ по п. 29, в котором после определения процессором числа пересечений лучом, исходящим из точки в любом направлении, любого из множества областей дополнительно создают указание на то, что точка не находится внутри первого многоугольника, если число пересечений представляет собой четное число.
32. Способ по любому из пп. 27-31, в котором каждая из областей состоит из всех точек, находящихся не дальше граничного расстояния от линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем граничное расстояние представляет собой кратчайшее расстояние от линии до наиболее удаленной от линии точки в соответствующей части первого многоугольника.
33. Способ по п. 32, в котором многомерное пространство обладает только двумя измерениями и каждая из областей представляет собой соответствующую зону многомерного пространства.
34. Способ по любому из пп. 27-31, в котором многомерное пространство обладает только двумя измерениями и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из:
всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и
всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
35. Способ по п. 32, в котором многомерное пространство обладает только двумя измерениями и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из:
всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и
всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
36. Способ по п. 33, в котором многомерное пространство обладает только двумя измерениями и каждая из областей представляет собой соответствующую зону многомерного пространства, состоящую из:
всех точек, находящихся не дальше первого граничного расстояния от первой стороны линии, охватывающей соответствующую часть первого многоугольника одной из областей, причем первое граничное расстояние представляет собой кратчайшее расстояние от первой стороны линии до наиболее удаленной от первой стороны линии точки в соответствующей части первого многоугольника; и
всех точек, находящихся не дальше второго граничного расстояния от второй стороны линии, причем второе граничное расстояние представляет собой кратчайшее расстояние от второй стороны линии до наиболее удаленной от второй стороны линии точки в соответствующей части первого многоугольника.
37. Электронное устройство для определения расположения точки относительно многоугольника, содержащее:
интерфейс сетевой связи;
процессор, соединенный с интерфейсом сетевой связи, выполнен с возможностью:
получения через интерфейс сети передачи данных, запроса пользователя, связанного с нажатием пользователя на интерфейс ввода пользовательского устройства;
получения первых координат многоугольника, определяющих позицию и форму первого многоугольника в многомерном пространстве, отображенном на интерфейсе вывода пользовательского устройства; получения координат точки, определяющих позицию точки в многомерном пространстве, связанном с нажатием пользователя; определения по меньшей мере одной области в многомерном пространстве, охватывающей соответствующую часть координат первого многоугольника и представляющей первый многоугольник в упрощенном виде, и области охватывают первый многоугольник; и сохранения на постоянном машиночитаемом носителе координат по меньшей мере одной из областей; и
сохранения координат области и координат точки, определяющих позицию точки в многомерном пространстве для создания указания на то, что точка находится внутри первого многоугольника, и указания на то, что точка не находится внутри первого многоугольника.
38. Электронное устройство по п. 37, в котором процессор выполнен с возможностью выполнения алгоритма трассировки луча.
39. Электронное устройство для определения расположения точки относительно многоугольника, содержащее:
пользовательский интерфейс ввода;
пользовательский интерфейс вывода;
процессор, соединенный с пользовательским интерфейсом ввода и пользовательским интерфейсом вывода, процессор выполнен с возможностью:
получения координат точки, определяющих позицию точки в многомерном пространстве, связанном с нажатием пользователя в пользовательском интерфейсе ввода;
получения первых координат многоугольника, определяющих позицию и форму первого многоугольника в многомерном пространстве, которое отображается на интерфейсе вывода пользовательского устройства; определения в многомерном пространстве области, каждая из которых охватывает соответствующую часть координат первого многоугольника, и области охватывают первый многоугольник;
сохранения на постоянном машиночитаемом носителе координат по меньшей мере одной из областей; и
анализа координат области и координат точки, определяющих позицию точки в многомерном пространстве для создания указания на то, что точка находится внутри первого многоугольника, и указания на то, что точка не находится внутри первого многоугольника; причем анализ координат области и координат точки осуществляется посредством определения количества пересечений по меньшей мере одного луча, исходящего из точки в любом направлении, и по меньшей мере одной указанной областью.
40. Электронное устройство по п. 39, в котором выполнение анализа координат точки и координат области включает в себя выполнение алгоритма трассировки луча.
41. Электронное устройство по п. 39, в котором создание одного из указания на то, что точка находится внутри первого многоугольника, и указания на то, что точка не находится внутри первого многоугольника, на основе анализа координат области и координат точки выполняют после определения числа раз, когда луч, исходящий из точки в любом направлении, пересекает любую из множества областей.
42. Электронное устройство по п. 41, в котором процессор выполнен с возможностью создания указания на то, что точка находится внутри первого многоугольника, после определения того, что число раз, когда луч, исходящий из точки в любом направлении, пересекает любую из множества областей, представляет собой нечетное число.
43. Электронное устройство по п. 41, в котором процессор выполнен с возможностью создания указания на то, что точка не находится внутри первого многоугольника, после определения того, что число раз, когда луч, исходящий из точки в любом направлении, пересекает любую из множества областей, представляет собой четное число.
RU2014143789A 2014-10-30 2014-10-30 Способ (варианты) и электронное устройство (варианты) определения расположения точки относительно первого многоугольника в многомерном пространстве RU2608870C2 (ru)

Priority Applications (3)

Application Number Priority Date Filing Date Title
RU2014143789A RU2608870C2 (ru) 2014-10-30 2014-10-30 Способ (варианты) и электронное устройство (варианты) определения расположения точки относительно первого многоугольника в многомерном пространстве
US15/521,128 US10192324B2 (en) 2014-10-30 2015-02-09 Method and electronic device for determining whether a point lies within a polygon in a multidimensional space
PCT/IB2015/050970 WO2016067116A1 (en) 2014-10-30 2015-02-09 Method and electronic device for determining whether a point lies within a polygon in a multidimensional space

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2014143789A RU2608870C2 (ru) 2014-10-30 2014-10-30 Способ (варианты) и электронное устройство (варианты) определения расположения точки относительно первого многоугольника в многомерном пространстве

Publications (2)

Publication Number Publication Date
RU2014143789A RU2014143789A (ru) 2016-05-27
RU2608870C2 true RU2608870C2 (ru) 2017-01-25

Family

ID=55856671

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014143789A RU2608870C2 (ru) 2014-10-30 2014-10-30 Способ (варианты) и электронное устройство (варианты) определения расположения точки относительно первого многоугольника в многомерном пространстве

Country Status (3)

Country Link
US (1) US10192324B2 (ru)
RU (1) RU2608870C2 (ru)
WO (1) WO2016067116A1 (ru)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10593074B1 (en) * 2016-03-16 2020-03-17 Liberty Mutual Insurance Company Interactive user interface for displaying geographic boundaries
WO2019178222A1 (en) 2018-03-14 2019-09-19 Protect Animals with Satellites, LLC Corrective collar utilizing geolocation technology
US20220284622A1 (en) * 2019-09-12 2022-09-08 Nippon Telegraph And Telephone Corporation Preprocessing device, determination system, preprocessing method, and preprocessing program

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4897805A (en) * 1988-05-17 1990-01-30 Prime Computer, Inc. Method and apparatus for performing polygon fills in graphical applications
US5303340A (en) * 1989-10-23 1994-04-12 International Business Machines Corporation Concave polygon drawing method and processor for a computer graphics display system
RU2342705C9 (ru) * 2007-03-20 2009-04-20 Институт проблем управления им. В.А. Трапезникова РАН Компьютерный способ формирования изображения частей ломаной линии, лежащих как внутри, так и вне многоугольной области, и компьютерный способ формирования изображения границ одной или нескольких областей, полученных в результате применения заданной логической операции к двум многоугольным областям
US20130100502A1 (en) * 2010-06-25 2013-04-25 Fujitsu Limited Apparatus and method for processing images
US20130278594A1 (en) * 2012-04-20 2013-10-24 Nokia Corporation Method and apparatus for presenting geo-traces using a reduced set of points based on an available display area

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751289A (en) * 1992-10-01 1998-05-12 University Corporation For Atmospheric Research Virtual reality imaging system with image replay
US6701306B1 (en) 2000-03-15 2004-03-02 Cadence Design Systems, Inc. Methods and apparatus for manipulating polygons in a multidimensional space
US7375728B2 (en) 2001-10-01 2008-05-20 University Of Minnesota Virtual mirror
WO2002093496A1 (en) 2001-05-15 2002-11-21 Koninklijke Philips Electronics N.V. Analysis of a multi-dimensional data set
US8044953B2 (en) 2002-06-28 2011-10-25 Autodesk, Inc. System for interactive 3D navigation for proximal object inspection
US7567248B1 (en) 2004-04-28 2009-07-28 Mark William R System and method for computing intersections between rays and surfaces
US8214157B2 (en) * 2006-03-31 2012-07-03 Nodality, Inc. Method and apparatus for representing multidimensional data
US20080143709A1 (en) 2006-12-14 2008-06-19 Earthmine, Inc. System and method for accessing three dimensional information from a panoramic image
US20080266287A1 (en) 2007-04-25 2008-10-30 Nvidia Corporation Decompression of vertex data using a geometry shader
US8340629B2 (en) * 2009-09-11 2012-12-25 General Motors Llc Method of contacting a PSAP
US8416122B1 (en) 2010-05-13 2013-04-09 Lockheed Martin Corporation Point-in-polygon target location
US8508533B2 (en) 2011-09-28 2013-08-13 Palantir Technologies, Inc. Simplifying a polygon
WO2016029934A1 (en) * 2014-08-26 2016-03-03 Quizista GmbH Dynamic boxing of graphical objects, in particular for knowledge quantification

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4897805A (en) * 1988-05-17 1990-01-30 Prime Computer, Inc. Method and apparatus for performing polygon fills in graphical applications
US5303340A (en) * 1989-10-23 1994-04-12 International Business Machines Corporation Concave polygon drawing method and processor for a computer graphics display system
RU2342705C9 (ru) * 2007-03-20 2009-04-20 Институт проблем управления им. В.А. Трапезникова РАН Компьютерный способ формирования изображения частей ломаной линии, лежащих как внутри, так и вне многоугольной области, и компьютерный способ формирования изображения границ одной или нескольких областей, полученных в результате применения заданной логической операции к двум многоугольным областям
US20130100502A1 (en) * 2010-06-25 2013-04-25 Fujitsu Limited Apparatus and method for processing images
US20130278594A1 (en) * 2012-04-20 2013-10-24 Nokia Corporation Method and apparatus for presenting geo-traces using a reduced set of points based on an available display area

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
статья Н.А. Тюкачева "Алгоритм определения принадлежности точки многоугольнику общего вида или многограннику с треугольными гранями", опубликованная в 2009 г., 15 стр. *

Also Published As

Publication number Publication date
WO2016067116A1 (en) 2016-05-06
US10192324B2 (en) 2019-01-29
RU2014143789A (ru) 2016-05-27
US20170323457A1 (en) 2017-11-09

Similar Documents

Publication Publication Date Title
RU2678077C2 (ru) Способ отрисовки поисковых результатов на карте, отображаемой на электронном устройстве
JP6431945B2 (ja) 視覚ベイジアンデータフュージョンのシステムおよび方法
US20200074270A1 (en) Estimate ore content based on spatial geological data through 3d convolutional neural networks
US20200320738A1 (en) Method and system for updating map for pose estimation based on images
CN109974699B (zh) 一种机器人及其地图自主探索方法和装置
US11176162B2 (en) Visualizing changes in a multi-dimensional dataset using three-dimensional cubes
US10147162B2 (en) Method and system for recognizing POI outside map screen
US9342222B2 (en) Accessible chart navigation using object neighborhood
US10900795B2 (en) Method and system for identifying meeting points
CN103246755A (zh) 基于任意拉格朗日-欧拉(ale)的有限元分析的单元细分方法和系统
RU2608870C2 (ru) Способ (варианты) и электронное устройство (варианты) определения расположения точки относительно первого многоугольника в многомерном пространстве
KR20210033186A (ko) 도시 모델 제공 방법 및 장치
US20180300854A1 (en) Method and electronic device for rendering a panorama image
Emery et al. Two approaches to direct block-support conditional co-simulation
RU2608885C2 (ru) Способ определения точки кривой, ближайшей к позиции на карте
CN104541515A (zh) 浏览图像图形内的兴趣点的图像
US9390323B1 (en) Recommending sites through metadata analysis
RU2608780C2 (ru) Способ (варианты) и машиночитаемый носитель (варианты) для определения принадлежности точки кривой в многомерном пространстве
US9322666B2 (en) Method for displaying a position on a map
TWI543008B (zh) 資料管理設備及資料管理方法
KR102520732B1 (ko) 유동해석 데이터 처리장치 및 그 장치에서 각 기능을 실행시키기 위해 매체에 저장된 컴퓨터 프로그램
US20170046472A1 (en) Computer-readable storage medium having electro-static discharge verification program stored therein, information processing apparatus, and method of verifying electro-static discharge
RU2643431C2 (ru) Способ и сервер симплификации кривой
US20160335375A1 (en) Support method and support apparatus
KR102639050B1 (ko) Vr 이미지 콘텐츠 제공 시스템