Интерфейс PathIterator
- Все известные реализующие классы:
FlatteningPathIterator
public interface PathIterator
PathIterator предоставляет механизм для объектов, реализующих интерфейс Shape, для возвращения геометрии их границы, позволяя вызывающему объекту извлекать путь этой границы по одному сегменту за раз. Этот интерфейс позволяет этим объектам извлекать путь их границы по одному сегменту за раз, используя кривые Безье 1-го, 2-го и 3-го порядка, которые являются линиями и квадратичными или кубическими сплайнами Безье. Несколько подпутей можно выразить, используя сегмент «MOVETO», чтобы создать разрыв в геометрии, чтобы переместиться от конца одного подпути к началу следующего.
Каждый подпуть можно закрыть вручную, завершив последний сегмент в подпути в тех же координатах, что и начальный сегмент «MOVETO» для этого подпути, или используя сегмент «CLOSE» для добавления отрезка прямой от последней точки к первой. Имейте в виду, что ручное закрытие контура по сравнению с использованием сегмента «CLOSE» для закрытия пути может привести к использованию различных декораций стиля линии в конечных точках подпути. Например, объект BasicStroke использует декорацию «JOIN» для линий для соединения первой и последней точек, если встречается сегмент «CLOSE», тогда как простое завершение пути в тех же координатах, что и начальные координаты, приводит к использованию декораций «CAP» для концов.
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
SEG_CLOSE |
Константа типа сегмента, указывающая, что предыдущий подпуть должен быть закрыт путём добавления отрезка прямой к точке, соответствующей последнему SEG_MOVETO. |
static final int |
SEG_CUBICTO |
Константа типа сегмента для набора из 3 точек, определяющих кубическую параметрическую кривую, которая должна быть построена от последней указанной точки. |
static final int |
SEG_LINETO |
Константа типа сегмента для точки, определяющей конечную точку прямой, которая должна быть построена от последней указанной точки. |
static final int |
SEG_MOVETO |
Константа типа сегмента для точки, определяющей начальное положение нового подпути. |
static final int |
SEG_QUADTO |
Константа типа сегмента для пары точек, определяющих квадратическую параметрическую кривую, которая должна быть построена от последней указанной точки. |
static final int |
WIND_EVEN_ODD |
Константа правила обхода для определения правила чётности/нечётности для определения внутренней части пути. |
static final int |
WIND_NON_ZERO |
Константа правила обхода для определения правила не равного нулю для определения внутренней части пути. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
currentSegment |
Возвращает координаты и тип текущего сегмента пути в итерации. |
int |
currentSegment |
Возвращает координаты и тип текущего сегмента пути в итерации. |
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
(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
- См. также:
Подробное описание методов
getWindingRule
int getWindingRule()
- Возвращает:
- правило обхода.
- См. также:
isDone
boolean isDone()
- Возвращает:
-
trueесли все сегменты были прочитаны;falseв противном случае.
next
void next()
currentSegment
int currentSegment(float[] coords)
- Параметры:
-
coords— массив, который хранит данные, возвращаемые этим методом - Возвращает:
- тип сегмента пути текущего сегмента пути.
- См. также:
currentSegment
int currentSegment(double[] coords)
- Параметры:
-
coords— массив, который хранит данные, возвращаемые этим методом - Возвращает:
- тип сегмента пути текущего сегмента пути.
- См. также:
© 1993, 2025, 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/geom/PathIterator.html