Класс FlatteningPathIterator
java.lang.Object
java.awt.geom.FlatteningPathIterator
- Все реализуемые интерфейсы:
PathIterator
public class FlatteningPathIterator extends Object implements PathIterator
Класс
FlatteningPathIterator возвращает уплощённое представление другого объекта PathIterator. Другие классы Shape могут использовать этот класс, чтобы обеспечить уплощение своих контуров, не выполняя самостоятельно вычисления интерполяции.Краткое описание полей
Поля, объявленные в интерфейсе PathIterator
SEG_CLOSE, SEG_CUBICTO, SEG_LINETO, SEG_MOVETO, SEG_QUADTO, WIND_EVEN_ODD, WIND_NON_ZERO | Модификатор и тип | Поле | Описание |
|---|---|---|
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 |
Константа правила обхода контура, задающая правило ненулевого числа для определения внутренней области контура. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
FlatteningPathIterator |
Создаёт новый объект FlatteningPathIterator, который уплощает контур при его обходе. |
FlatteningPathIterator |
Создаёт новый объект FlatteningPathIterator, который уплощает контур при его обходе. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
currentSegment |
Возвращает координаты и тип текущего сегмента контура при обходе. |
int |
currentSegment |
Возвращает координаты и тип текущего сегмента контура при обходе. |
double |
getFlatness() |
Возвращает степень уплощения этого итератора. |
int |
getRecursionLimit() |
Возвращает предел рекурсии этого итератора. |
int |
getWindingRule() |
Возвращает правило обхода контура, используемое для определения его внутренней области. |
boolean |
isDone() |
Проверяет, завершён ли обход. |
void |
next() |
Перемещает итератор к следующему сегменту контура в прямом направлении обхода, пока в этом направлении остаются точки. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Показывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарело, планируется удаление: этот элемент API может быть удалён в будущей версии. Финализация устарела и может быть удалена в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
FlatteningPathIterator
public FlatteningPathIterator(PathIterator src, double flatness)
Создаёт новый объект
FlatteningPathIterator, который уплощает контур при его обходе. Итератор не подразделяет ни одну кривую, считанную из исходного итератора, более чем на 10 уровней, что даёт не более 1024 отрезков на кривую.- Параметры:
-
src— исходный неуплощённый контур, выполняемый обход -
flatness— максимально допустимое расстояние между контрольными точками и уплощённой кривой
FlatteningPathIterator
public FlatteningPathIterator(PathIterator src, double flatness, int limit)
Создаёт новый объект
FlatteningPathIterator, который уплощает контур при его обходе. Параметр limit позволяет задать максимальное число рекурсивных подразделений, которые итератор может выполнить, прежде чем считать кривую достаточно плоской без сравнения с параметром flatness. Поэтому при уплощённом обходе для каждой кривой создаётся не более (2^limit) отрезков.- Параметры:
-
src— исходный неуплощённый контур, выполняемый обход -
flatness— максимально допустимое расстояние между контрольными точками и уплощённой кривой -
limit— максимальное число рекурсивных подразделений для любого криволинейного сегмента - Исключения:
-
IllegalArgumentException— еслиflatnessилиlimitменьше нуля
Подробное описание методов
getFlatness
public double getFlatness()
Возвращает степень уплощения этого итератора.
- Возвращает:
- степень уплощения этого
FlatteningPathIterator.
getRecursionLimit
public int getRecursionLimit()
Возвращает предел рекурсии этого итератора.
- Возвращает:
- предел рекурсии этого
FlatteningPathIterator.
getWindingRule
public int getWindingRule()
Возвращает правило обхода контура, используемое для определения его внутренней области.
- Определено в:
-
getWindingRuleв интерфейсеPathIterator - Возвращает:
- правило обхода исходного неуплощённого контура, выполняемого обход.
- См. также:
isDone
public boolean isDone()
Проверяет, завершён ли обход.
- Определено в:
-
isDoneв интерфейсеPathIterator - Возвращает:
-
true, если все сегменты прочитаны; в противном случае —false.
next
public void next()
Перемещает итератор к следующему сегменту контура в прямом направлении обхода, пока в этом направлении остаются точки.
- Определено в:
-
nextв интерфейсеPathIterator
currentSegment
public int currentSegment(float[] coords)
Возвращает координаты и тип текущего сегмента контура при обходе. Возвращаемое значение — тип сегмента контура: SEG_MOVETO, SEG_LINETO или SEG_CLOSE. Необходимо передать массив float длиной 6, который можно использовать для хранения координат точек. Каждая точка хранится как пара координат x,y типа float. Типы SEG_MOVETO и SEG_LINETO возвращают одну точку, а SEG_CLOSE не возвращает точек.
- Определено в:
-
currentSegmentв интерфейсеPathIterator - Параметры:
-
coords— массив для хранения данных, возвращаемых этим методом - Возвращает:
- тип текущего сегмента контура.
- Исключения:
-
NoSuchElementException— если в уплощённом контуре больше нет элементов для возврата. - См. также:
currentSegment
public int currentSegment(double[] coords)
Возвращает координаты и тип текущего сегмента контура при обходе. Возвращаемое значение — тип сегмента контура: SEG_MOVETO, SEG_LINETO или SEG_CLOSE. Необходимо передать массив double длиной 6, который можно использовать для хранения координат точек. Каждая точка хранится как пара координат x,y типа double. Типы SEG_MOVETO и SEG_LINETO возвращают одну точку, а SEG_CLOSE не возвращает точек.
- Определено в:
-
currentSegmentв интерфейсеPathIterator - Параметры:
-
coords— массив для хранения данных, возвращаемых этим методом - Возвращает:
- тип текущего сегмента контура.
- Исключения:
-
NoSuchElementException— если в уплощённом контуре больше нет элементов для возврата. - См. также:
© 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.