Класс FlatteningPathIterator
- java.lang.Object
-
- java.awt.geom.FlatteningPathIterator
- Все реализованные интерфейсы:
PathIterator
public class FlatteningPathIterator extends Object implements PathIterator
Класс FlatteningPathIterator возвращает сглаженное представление другого объекта PathIterator. Другие классы Shape могут использовать этот класс для обеспечения сглаживания своих путей, без необходимости выполнения вычислений интерполяции самостоятельно.
Поля
Поля, объявленные в интерфейсе java.awt.geom.PathIterator
SEG_CLOSE, SEG_CUBICTO, SEG_LINETO, SEG_MOVETO, SEG_QUADTO, WIND_EVEN_ODD, WIND_NON_ZERO
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
FlatteningPathIterator(PathIterator src,
double flatness) |
Создаёт новый объект |
FlatteningPathIterator(PathIterator src,
double flatness,
int limit) |
Создаёт новый объект |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
currentSegment(double[] coords) |
Возвращает координаты и тип текущего сегмента пути в итерации. |
int |
currentSegment(float[] coords) |
Возвращает координаты и тип текущего сегмента пути в итерации. |
double |
getFlatness() |
Возвращает сглаженность этого итератора. |
int |
getRecursionLimit() |
Возвращает предел рекурсии этого итератора. |
int |
getWindingRule() |
Возвращает правило обхода для определения внутренней области пути. |
boolean |
isDone() |
Проверяет, завершена ли итерация. |
void |
next() |
Перемещает итератор к следующему сегменту пути вперёд по основному направлению обхода, пока есть дополнительные точки в этом направлении. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, 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 - Возвращает:
- правило обхода исходного, не сглаженного пути, по которому выполняется итерация.
- См. также:
-
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, который можно использовать для хранения координат точки(точек). Каждая точка хранится как пара координат float x, y. Типы 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, который можно использовать для хранения координат точки(точек). Каждая точка хранится как пара координат double x, y. Типы SEG_MOVETO и SEG_LINETO возвращают одну точку, а SEG_CLOSE не возвращает никаких точек.
- Определено в:
-
currentSegmentв интерфейсеPathIterator - Параметры:
-
coords- массив, содержащий данные, возвращаемые этим методом - Возвращает:
- тип сегмента пути текущего сегмента пути.
- Исключения:
-
NoSuchElementException- если больше нет элементов в сглаженном пути, которые необходимо вернуть. - См. также:
-
PathIterator.SEG_MOVETO,PathIterator.SEG_LINETO,PathIterator.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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/geom/FlatteningPathIterator.html