Spec-Zone.ru › OpenJDK 27

Класс 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(PathIterator src, double flatness)
Создаёт новый объект FlatteningPathIterator, который уплощает контур при его обходе.
FlatteningPathIterator(PathIterator src, double flatness, int limit)
Создаёт новый объект FlatteningPathIterator, который уплощает контур при его обходе.

Краткое описание методов

Модификатор и тип Метод Описание
int currentSegment(double[] coords)
Возвращает координаты и тип текущего сегмента контура при обходе.
int currentSegment(float[] coords)
Возвращает координаты и тип текущего сегмента контура при обходе.
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(Object obj)
Показывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удалён в будущей версии.
Финализация устарела и может быть удалена в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

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
Возвращает:
правило обхода исходного неуплощённого контура, выполняемого обход.
См. также:
  • PathIterator.WIND_EVEN_ODD
  • PathIterator.WIND_NON_ZERO

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 — если в уплощённом контуре больше нет элементов для возврата.
См. также:
  • PathIterator.SEG_MOVETO
  • PathIterator.SEG_LINETO
  • PathIterator.SEG_CLOSE

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 — если в уплощённом контуре больше нет элементов для возврата.
См. также:
  • PathIterator.SEG_MOVETO
  • PathIterator.SEG_LINETO
  • PathIterator.SEG_CLOSE

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, где приведены более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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