Spec-Zone.ru › OpenJDK 8

Интерфейс PathIterator

Все известные реализующие классы:
FlatteningPathIterator

public interface PathIterator

Интерфейс PathIterator предоставляет механизм для объектов, реализующих интерфейс Shape, для возвращения геометрии их границы, позволяя вызывающему объекту получать путь этой границы по сегментам. Этот интерфейс позволяет этим объектам получать путь своей границы по сегментам, используя кривые Безье 1-го, 2-го и 3-го порядка, которые являются прямыми и квадратичными или кубическими сплайнами Безье.

Несколько подпутей могут быть выражены с помощью сегмента «MOVETO», чтобы создать разрыв в геометрии, чтобы переместиться от конца одного подпути к началу следующего.

Каждый подпуть можно закрыть вручную, завершив последний сегмент подпути в тех же координатах, что и начальный сегмент «MOVETO» для данного подпути, или используя сегмент «CLOSE», чтобы добавить линию от последней точки к первой. Имейте в виду, что закрытие контура вручную вместо использования сегмента «CLOSE» для закрытия пути может привести к использованию различных декораций стиля линии в конечных точках подпути. Например, объект BasicStroke использует декорацию соединения «JOIN» для соединения первой и последней точек, если встречается сегмент «CLOSE», тогда как простое завершение пути в тех же координатах, что и начальная координата, приводит к использованию декораций «CAP» для концов.

См. также:
Shape, BasicStroke

Поля

Модификатор и тип Поле и описание
static int SEG_CLOSE

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

static int SEG_CUBICTO

Константа типа сегмента для набора из 3 точек, определяющих кубическую параметрическую кривую, которая должна быть нарисована от последней указанной точки.

static int SEG_LINETO

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

static int SEG_MOVETO

Константа типа сегмента для точки, определяющей начальное положение нового подпути.

static int SEG_QUADTO

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

static int WIND_EVEN_ODD

Константа правила обхода для указания правила «четно-нечетно» для определения внутренней части пути.

static int WIND_NON_ZERO

Константа правила обхода для указания правила «не ноль» для определения внутренней части пути.

Методы

Модификатор и тип Метод и описание
int currentSegment(double[] coords)

Возвращает координаты и тип текущего сегмента пути в итерации.

int currentSegment(float[] coords)

Возвращает координаты и тип текущего сегмента пути в итерации.

int getWindingRule()

Возвращает правило обхода для определения внутренней части пути.

boolean isDone()

Проверяет, завершена ли итерация.

void next()

Перемещает итератор к следующему сегменту пути вперед по основному направлению обхода, до тех пор, пока есть больше точек в этом направлении.

Поля

WIND_EVEN_ODD

@Native
static final int WIND_EVEN_ODD

Константа правила обхода для указания правила «четно-нечетно» для определения внутренней части пути. Правило «четно-нечетно» определяет, что точка лежит внутри пути, если луч, проведенный в любом направлении от этой точки до бесконечности, пересекается сегментами пути нечетное количество раз.

См. также:
Значения константных полей

WIND_NON_ZERO

@Native
static final int WIND_NON_ZERO

Константа правила обхода для указания правила «не ноль» для определения внутренней части пути. Правило «не ноль» определяет, что точка лежит внутри пути, если луч, проведенный в любом направлении от этой точки до бесконечности, пересекается сегментами пути разное количество раз в направлении против часовой стрелки по сравнению с направлением по часовой стрелке.

См. также:
Значения константных полей

SEG_MOVETO

@Native
static final int SEG_MOVETO

Константа типа сегмента для точки, определяющей начальное положение нового подпути.

См. также:
Значения константных полей

SEG_LINETO

@Native
static final int SEG_LINETO

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

См. также:
Значения константных полей

SEG_QUADTO

@Native
static final int SEG_QUADTO

Константа типа сегмента для пары точек, определяющих квадратичную параметрическую кривую, которая должна быть нарисована от последней указанной точки. Кривая интерполируется путем решения параметрического уравнения управления в диапазоне (t=[0..1]) с использованием последней указанной (текущей) точки (CP), первой контрольной точки (P1) и конечной интерполированной контрольной точки (P2). Параметрическое уравнение управления для этой кривой:

P(t) = B(2,0)*CP + B(2,1)*P1 + B(2,2)*P2
          0 <= t <= 1

        B(n,m) = mth coefficient of nth degree Bernstein polynomial
               = C(n,m) * t^(m) * (1 - t)^(n-m)
        C(n,m) = Combinations of n things, taken m at a time
               = n! / (m! * (n-m)!)

См. также:
Значения константных полей

SEG_CUBICTO

@Native
static final int SEG_CUBICTO

Константа типа сегмента для набора из 3 точек, определяющих кубическую параметрическую кривую, которая должна быть нарисована от последней указанной точки. Кривая интерполируется путем решения параметрического уравнения управления в диапазоне (t=[0..1]) с использованием последней указанной (текущей) точки (CP), первой контрольной точки (P1), второй контрольной точки (P2) и конечной интерполированной контрольной точки (P3). Параметрическое уравнение управления для этой кривой:

P(t) = B(3,0)*CP + B(3,1)*P1 + B(3,2)*P2 + B(3,3)*P3
          0 <= t <= 1

        B(n,m) = mth coefficient of nth degree Bernstein polynomial
               = C(n,m) * t^(m) * (1 - t)^(n-m)
        C(n,m) = Combinations of n things, taken m at a time
               = n! / (m! * (n-m)!)
Этот вид кривой обычно известен как кривая Безье.

См. также:
Значения константных полей

SEG_CLOSE

@Native
static final int SEG_CLOSE

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

См. также:
Значения константных полей

Методы

getWindingRule

int getWindingRule()

Возвращает правило обхода для определения внутренней части пути.

Возвращает:
правило обхода.
См. также:
WIND_EVEN_ODD, WIND_NON_ZERO

isDone

boolean isDone()

Проверяет, завершена ли итерация.

Возвращает:
true если все сегменты были прочитаны; false в противном случае.

next

void next()

Перемещает итератор к следующему сегменту пути вперед по основному направлению обхода, до тех пор, пока есть больше точек в этом направлении.

currentSegment

int currentSegment(float[] coords)

Возвращает координаты и тип текущего сегмента пути в итерации. Возвращаемое значение — тип сегмента пути: SEG_MOVETO, SEG_LINETO, SEG_QUADTO, SEG_CUBICTO или SEG_CLOSE. Массив float длиной 6 должен быть передан и может использоваться для хранения координат точки (точек). Каждая точка хранится как пара координат x, y типа float. Типы SEG_MOVETO и SEG_LINETO возвращают одну точку, SEG_QUADTO — две точки, SEG_CUBICTO — три точки, а SEG_CLOSE не возвращает ни одной точки.

Параметры:
coords - массив, который хранит данные, возвращенные этим методом
Возвращает:
тип сегмента пути текущего сегмента пути.
См. также:
SEG_MOVETO, SEG_LINETO, SEG_QUADTO, SEG_CUBICTO, SEG_CLOSE

currentSegment

int currentSegment(double[] coords)

Возвращает координаты и тип текущего сегмента пути в итерации. Возвращаемое значение — тип сегмента пути: SEG_MOVETO, SEG_LINETO, SEG_QUADTO, SEG_CUBICTO или SEG_CLOSE. Массив double длиной 6 должен быть передан и может использоваться для хранения координат точки (точек). Каждая точка хранится как пара координат x, y типа double. Типы SEG_MOVETO и SEG_LINETO возвращают одну точку, SEG_QUADTO — две точки, SEG_CUBICTO — три точки, а SEG_CLOSE не возвращает ни одной точки.

Параметры:
coords - массив, который хранит данные, возвращенные этим методом
Возвращает:
тип сегмента пути текущего сегмента пути.
См. также:
SEG_MOVETO, SEG_LINETO, SEG_QUADTO, SEG_CUBICTO, SEG_CLOSE

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API