Spec-Zone.ru › OpenJDK 21

Интерфейс PathIterator

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

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

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

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

Краткое описание полей

Модификатор и тип Поле Описание
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(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 должен быть передан и может использоваться для хранения координат точки(точек). Каждая точка хранится как пара координат float x,y. Типы SEG_MOVETO и SEG_LINETO возвращают одну точку, SEG_QUADTO возвращает две точки, SEG_CUBICTO возвращает 3 точки, а 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 должен быть передан и может использоваться для хранения координат точки(точек). Каждая точка хранится как пара координат double x,y. Типы SEG_MOVETO и SEG_LINETO возвращают одну точку, SEG_QUADTO возвращает две точки, SEG_CUBICTO возвращает 3 точки, а SEG_CLOSE не возвращает никаких точек.
Параметры:
coords - массив, в котором хранятся данные, возвращаемые этим методом
Возвращает:
тип сегмента пути текущего сегмента пути.
См. также:
  • SEG_MOVETO
  • SEG_LINETO
  • SEG_QUADTO
  • SEG_CUBICTO
  • SEG_CLOSE

© 1993, 2023, 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/21/docs/api/java.desktop/java/awt/geom/PathIterator.html

Spec-Zone.ru

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