---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.1
alternate:
  - https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IPixelPolygonGeometry.md
  - https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelPolygonGeometry.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/llms.txt

# IPixelPolygonGeometry

Расширяет [IPixelGeometry](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelGeometry.md).

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

[Конструктор](#constructor-summary) | [Поля ](#properties-summary) | [Методы ](#methods-summary)

## Конструктор {#constructor-summary}

```javascript
IPixelPolygonGeometry()
```

## Поля {#properties-summary}

#|
|| **Имя** | **Тип** | **Описание** ||
|| [events](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IEventEmitter.md#events) | [IEventManager](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IEventManager.md) | Менеджер событий.

Унаследовано от [IEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IEventEmitter.md#events). \|
|#


## Методы {#methods-summary}

#|
|| **Имя** | **Возвращает** | **Описание** ||
|| [contains](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelPolygonGeometry.md#contains)([position](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelPolygonGeometry.md#contains-param-position)) | Boolean | Проверяет, лежит ли переданная точка внутри многоугольника. ||
|| [equals](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelGeometry.md#equals)([geometry](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelGeometry.md#equals-param-geometry)) | Boolean | Возвращает true, если переданная геометрия эквивалентна данной.

Унаследован от [IPixelGeometry](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelGeometry.md#equals). ||
|| [getBounds](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IBaseGeometry.md#getBounds)() | Number[][]\|null | Возвращает координаты двух противоположных углов области, охватывающей геометрию. Первый элемент массива - угол с наименьшими значениями координат относительно остальных точек области; второй элемент - угол с наибольшими значениями координат.

Унаследован от [IBaseGeometry](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IBaseGeometry.md#getBounds). ||
|| [getClosest](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelPolygonGeometry.md#getClosest)([anchorPosition](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelPolygonGeometry.md#getClosest-param-anchorPosition)) | Object | Ищет на контуре многоугольника точку, ближайшую к anchorPosition. ||
|| [getCoordinates](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelPolygonGeometry.md#getCoordinates)() | Number[][][] | Возвращает координаты многоугольника. ||
|| [getFillRule](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelPolygonGeometry.md#getFillRule)() | String | Возвращает строковый идентификатор, определяющий алгоритм заливки многоугольника. Идентификатор может принимать одно из двух значений:
- evenOdd - алгоритм, определяющий, находится ли точка в области заполнения, путем рисования луча от этой точки до бесконечности в любом направлении и подсчета количества сегментов контура в пределах заданной фигуры, которые пересекает этот луч. Если это число нечетное, точка находится внутри; если четное, точка находится снаружи.
- nonZero - алгоритм, определяющий, находится ли точка в области заполнения, путем рисования луча от этой точки до бесконечности в любом направлении и проверки точек, в которых сегмент фигуры пересекает этот луч. Начиная с нуля, добавляется единица каждый раз, когда сегмент пересекает луч слева направо, и вычитается единица каждый раз, когда сегмент пересекает луч справа налево. Если после подсчета пересечений результат равен нулю, точка находится снаружи контура. В противном случае она находится внутри. ||
|| [getLength](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelPolygonGeometry.md#getLength)() | Integer | Возвращает количество контуров в многоугольнике. ||
|| [getMetaData](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelGeometry.md#getMetaData)() | Object | Возвращает метаданные пиксельной геометрии.

Унаследован от [IPixelGeometry](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelGeometry.md#getMetaData). ||
|| [getType](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IBaseGeometry.md#getType)() | String | Возвращает идентификатор типа геометрии.

Унаследован от [IBaseGeometry](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IBaseGeometry.md#getType). ||
|| [scale](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelGeometry.md#scale)([factor](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelGeometry.md#scale-param-factor)) | [IPixelGeometry](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelGeometry.md) | Создает отмасштабированную копию геометрии.

Унаследован от [IPixelGeometry](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelGeometry.md#scale). ||
|| [shift](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelGeometry.md#shift)([offset](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelGeometry.md#shift-param-offset)) | [IPixelGeometry](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelGeometry.md) | Создает копию геометрии сдвинутую на заданную величину.

Унаследован от [IPixelGeometry](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IPixelGeometry.md#shift). ||
|#

## Описание методов {#method_detail}

### contains {#contains}

```javascript
{Boolean} contains(position)
```

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

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

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание**  ||
|| [`position`](#contains-param-position)[*](*star) | — | Тип: Number[]

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

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

### getClosest {#getClosest}

```javascript
{Object} getClosest(anchorPosition)
```

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

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

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание**  ||
|| [`anchorPosition`](#getClosest-param-anchorPosition)[*](*star) | — | Тип: Number[]

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

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

### getCoordinates {#getCoordinates}

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

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

### getFillRule {#getFillRule}

```javascript
{String} getFillRule()
```

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

### getLength {#getLength}

```javascript
{Integer} getLength()
```

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

<!-- XLIFF_FARM_MjM5MzEw_CACHING -->

[*star]: Обязательный параметр.