IPixelPolygonGeometry

Расширяет IPixelGeometry.

Интерфейс пиксельной геометрии "Многоугольник".

Конструктор | Поля | Методы

Конструктор

IPixelPolygonGeometry()

Поля

Имя Тип Описание
events IEventManager

Менеджер событий.

Унаследовано от IEventEmitter.

Методы

Имя Возвращает Описание
contains(position)

Boolean

Проверяет, лежит ли переданная точка внутри многоугольника.

equals(geometry)

Boolean

Возвращает true, если переданная геометрия эквивалентна данной.

Унаследован от IPixelGeometry.

getBounds()

Number[][]|null

Возвращает координаты двух противоположных углов области, охватывающей геометрию. Первый элемент массива - угол с наименьшими значениями координат относительно остальных точек области; второй элемент - угол с наибольшими значениями координат.

Унаследован от IBaseGeometry.

getClosest(anchorPosition)

Object

Ищет на контуре многоугольника точку, ближайшую к anchorPosition.

getCoordinates()

Number[][][]

Возвращает координаты многоугольника.

getFillRule()

String

Возвращает строковый идентификатор, определяющий алгоритм заливки многоугольника. Идентификатор может принимать одно из двух значений:
  • evenOdd - алгоритм, определяющий, находится ли точка в области заполнения, путем рисования луча от этой точки до бесконечности в любом направлении и подсчета количества сегментов контура в пределах заданной фигуры, которые пересекает этот луч. Если это число нечетное, точка находится внутри; если четное, точка находится снаружи.
  • nonZero - алгоритм, определяющий, находится ли точка в области заполнения, путем рисования луча от этой точки до бесконечности в любом направлении и проверки точек, в которых сегмент фигуры пересекает этот луч. Начиная с нуля, добавляется единица каждый раз, когда сегмент пересекает луч слева направо, и вычитается единица каждый раз, когда сегмент пересекает луч справа налево. Если после подсчета пересечений результат равен нулю, точка находится снаружи контура. В противном случае она находится внутри.
getLength()

Integer

Возвращает количество контуров в многоугольнике.

getMetaData()

Object

Возвращает метаданные пиксельной геометрии.

Унаследован от IPixelGeometry.

getType()

String

Возвращает идентификатор типа геометрии.

Унаследован от IBaseGeometry.

scale(factor)

IPixelGeometry

Создает отмасштабированную копию геометрии.

Унаследован от IPixelGeometry.

shift(offset)

IPixelGeometry

Создает копию геометрии сдвинутую на заданную величину.

Унаследован от IPixelGeometry.

Описание методов

contains

{Boolean} contains(position)

Проверяет, лежит ли переданная точка внутри многоугольника.

Возвращает признак принадлежности точки многоугольнику.

Параметры:

Параметр Значение по умолчанию Описание
position *

Тип: Number[]

Координаты точки.

* Обязательный параметр/опция.

getClosest

{Object} getClosest(anchorPosition)

Ищет на контуре многоугольника точку, ближайшую к anchorPosition.

Возвращает объект со следующими полями:
  • position - точка на контуре многоугольника ближайшая к anchorPosition;
  • distance - расстояние от anchorPosition до position;
  • closestPointIndex - индекс вершины многоугольника, ближайшей к position;
  • nextPointIndex - индекс вершины многоугольника, следующей за position;
  • prevPointIndex - индекс вершины многоугольника, предшествующей position;
  • pathIndex - индекс контура многоугольника, к которому относится найденная точка.
Поля nextPointIndex, prevPointIndex могут отсутствовать, если position совпадает с одной из вершин многоугольника.

Параметры:

Параметр Значение по умолчанию Описание
anchorPosition *

Тип: Number[]

Координаты точки, для которой расчитывается ближайшая точка на контуре многоугольника.

* Обязательный параметр/опция.

getCoordinates

{Number[][][]} getCoordinates()

Возвращает координаты многоугольника.

getFillRule

{String} getFillRule()
Возвращает строковый идентификатор, определяющий алгоритм заливки многоугольника. Идентификатор может принимать одно из двух значений:
  • evenOdd - алгоритм, определяющий, находится ли точка в области заполнения, путем рисования луча от этой точки до бесконечности в любом направлении и подсчета количества сегментов контура в пределах заданной фигуры, которые пересекает этот луч. Если это число нечетное, точка находится внутри; если четное, точка находится снаружи.
  • nonZero - алгоритм, определяющий, находится ли точка в области заполнения, путем рисования луча от этой точки до бесконечности в любом направлении и проверки точек, в которых сегмент фигуры пересекает этот луч. Начиная с нуля, добавляется единица каждый раз, когда сегмент пересекает луч слева направо, и вычитается единица каждый раз, когда сегмент пересекает луч справа налево. Если после подсчета пересечений результат равен нулю, точка находится снаружи контура. В противном случае она находится внутри.

getLength

{Integer} getLength()

Возвращает количество контуров в многоугольнике.