Класс GlyphVector
- Все реализованные интерфейсы:
Cloneable
public abstract class GlyphVector extends Object implements Cloneable
GlyphVector представляет собой коллекцию глифов, содержащую геометрическую информацию для размещения каждого глифа в преобразованном пространстве координат, соответствующем устройству, на котором отображается GlyphVector. Объект GlyphVector не пытается интерпретировать последовательность глифов, которые он содержит. Связи между соседними глифами в последовательности используются только для определения размещения глифов в пространстве визуальных координат.
Экземпляры GlyphVector создаются объектом Font.
В приложении для обработки текста, которое может кэшировать промежуточные представления текста, создание и последующее кэширование GlyphVector для использования во время отрисовки является наиболее быстрым методом представления визуального представления символов пользователю.
GlyphVector связан ровно с одним Font, и может предоставлять данные, полезные только в связи с этим Font. Кроме того, метрики, полученные из GlyphVector, как правило, не масштабируются геометрически, поскольку пикселизация и интервалы зависят от алгоритмов привязки к сетке в рамках Font. Чтобы обеспечить точное измерение GlyphVector и его компонентов-глифов, необходимо указать преобразование масштабирования, режим сглаживания и режим дробных метрик при создании GlyphVector. Эти характеристики могут быть получены от целевого устройства.
Для каждого глифа в GlyphVector можно получить:
- позицию глифа
- преобразование, связанное с глифом
- метрики глифа в контексте
GlyphVector. Метрики глифа могут отличаться при различных преобразованиях, заданных пользователем параметрах отрисовки и конкретном экземпляре глифа в рамкахGlyphVector.
Изменение данных, используемых для создания GlyphVector не изменяет состояние GlyphVector.
Предоставлены методы для корректировки позиций глифов в рамках GlyphVector. Эти методы наиболее подходят для приложений, выполняющих операции выравнивания для отображения глифов.
Предоставлены методы для преобразования отдельных глифов в рамках GlyphVector. Эти методы, в основном, полезны для специальных эффектов.
Предоставлены методы для возвращения визуальных, логических и пиксельных границ всего GlyphVector или отдельных глифов в рамках GlyphVector.
Предоставлены методы для возвращения Shape для GlyphVector и для отдельных глифов в рамках GlyphVector.
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
FLAG_COMPLEX_GLYPHS |
Флаг, используемый с getLayoutFlags, указывающий, что у этого GlyphVector есть сложное отображение глифов на символы (которое не отображает глифы на символы один к одному в строго возрастающем или убывающем порядке, соответствующем направлению строки). |
static final int |
FLAG_HAS_POSITION_ADJUSTMENTS |
Флаг, используемый с getLayoutFlags, указывающий, что у этого GlyphVector есть корректировки позиции. |
static final int |
FLAG_HAS_TRANSFORMS |
Флаг, используемый с getLayoutFlags, указывающий, что у этого GlyphVector есть преобразования для каждого глифа. |
static final int |
FLAG_MASK |
Маска для поддерживаемых флагов из getLayoutFlags. |
static final int |
FLAG_RUN_RTL |
Флаг, используемый с getLayoutFlags, указывающий, что у этого GlyphVector направление строки справа налево. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Конструктор для вызова подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract boolean |
equals |
Проверяет, точно ли указанный GlyphVector равен этому GlyphVector. |
abstract Font |
getFont() |
Возвращает Font связанный с этим GlyphVector. |
abstract FontRenderContext |
getFontRenderContext() |
Возвращает FontRenderContext связанный с этим GlyphVector. |
int |
getGlyphCharIndex |
Возвращает индекс символа указанного глифа. |
int[] |
getGlyphCharIndices |
Возвращает индексы символов указанных глифов. |
abstract int |
getGlyphCode |
Возвращает код глифа указанного глифа. |
abstract int[] |
getGlyphCodes |
Возвращает массив кодов глифов для указанных глифов. |
abstract GlyphJustificationInfo |
getGlyphJustificationInfo |
Возвращает информацию о выравнивании для глифа по указанному индексу в этом GlyphVector. |
abstract Shape |
getGlyphLogicalBounds |
Возвращает логические границы указанного глифа в этом GlyphVector. |
abstract GlyphMetrics |
getGlyphMetrics |
Возвращает метрики глифа по указанному индексу в этом GlyphVector. |
abstract Shape |
getGlyphOutline |
Возвращает Shape , внутренняя область которого соответствует визуальному представлению указанного глифа в этом GlyphVector. |
Shape |
getGlyphOutline |
Возвращает Shape , внутренняя область которого соответствует визуальному представлению указанного глифа в этом GlyphVector, смещенного на x, y. |
Rectangle |
getGlyphPixelBounds |
Возвращает пиксельные границы глифа по индексу, когда этот GlyphVector отрисовывается в Graphics с данным FontRenderContext в заданном месте. |
abstract Point2D |
getGlyphPosition |
Возвращает положение указанного глифа относительно начала координат этого GlyphVector. |
abstract float[] |
getGlyphPositions |
Возвращает массив положений глифов для указанных глифов. |
abstract AffineTransform |
getGlyphTransform |
Возвращает преобразование указанного глифа в этом GlyphVector. |
abstract Shape |
getGlyphVisualBounds |
Возвращает визуальные границы указанного глифа в GlyphVector. |
int |
getLayoutFlags() |
Возвращает флаги, описывающие глобальное состояние GlyphVector. |
abstract Rectangle2D |
getLogicalBounds() |
Возвращает логические границы этого GlyphVector. |
abstract int |
getNumGlyphs() |
Возвращает количество глифов в этом GlyphVector. |
abstract Shape |
getOutline() |
Возвращает Shape , внутренняя область которого соответствует визуальному представлению этого GlyphVector. |
abstract Shape |
getOutline |
Возвращает Shape , внутренняя область которого соответствует визуальному представлению этого GlyphVector при отрисовке в x, y. |
Rectangle |
getPixelBounds |
Возвращает пиксельные границы этого GlyphVector при отрисовке в графике с данным FontRenderContext в заданном месте. |
abstract Rectangle2D |
getVisualBounds() |
Возвращает визуальные границы этого GlyphVector Визуальные границы - это ограничивающая рамка контура этого GlyphVector. |
abstract void |
performDefaultLayout() |
Присваивает значения по умолчанию позициям каждого глифа в этом GlyphVector. |
abstract void |
setGlyphPosition |
Устанавливает положение указанного глифа в этом GlyphVector. |
abstract void |
setGlyphTransform |
Устанавливает преобразование указанного глифа в этом GlyphVector. |
Подробное описание полей
FLAG_HAS_TRANSFORMS
public static final int FLAG_HAS_TRANSFORMS
GlyphVector есть преобразования для каждого глифа.- С тех пор:
- 1.4
- См. также:
FLAG_HAS_POSITION_ADJUSTMENTS
public static final int FLAG_HAS_POSITION_ADJUSTMENTS
GlyphVector есть корректировки позиций. Когда это значение истинно, позиции глифов не соответствуют накопленным стандартным смещениям глифов (например, если было выполнено кернинг).- С тех пор:
- 1.4
- См. также:
FLAG_RUN_RTL
public static final int FLAG_RUN_RTL
GlyphVector есть направление выполнения справа налево. Это относится к сопоставлению глифов с символами и не подразумевает, что визуальные расположения глифов обязательно находятся в этом порядке, хотя обычно они таковы.- С тех пор:
- 1.4
- См. также:
FLAG_COMPLEX_GLYPHS
public static final int FLAG_COMPLEX_GLYPHS
GlyphVector есть сложное сопоставление глифов с символами (которое не сопоставляет глифы с символами один к одному в строго возрастающем или убывающем порядке, соответствующем направлению выполнения).- С тех пор:
- 1.4
- См. также:
FLAG_MASK
public static final int FLAG_MASK
- С тех пор:
- 1.4
- См. также:
Подробное описание конструкторов
GlyphVector
protected GlyphVector()
Подробное описание методов
getFont
public abstract Font getFont()
Font , связанный с этим GlyphVector.- Возвращает:
-
Font, использованный для создания этогоGlyphVector. - См. также:
getFontRenderContext
public abstract FontRenderContext getFontRenderContext()
FontRenderContext, связанный с этим GlyphVector.- Возвращает:
-
FontRenderContext, использованный для создания этогоGlyphVector. - См. также:
performDefaultLayout
public abstract void performDefaultLayout()
GlyphVector. Это может уничтожить информацию, сгенерированную во время первоначального макета этого GlyphVector.getNumGlyphs
public abstract int getNumGlyphs()
GlyphVector.- Возвращает:
- количество глифов в этом
GlyphVector.
getGlyphCode
public abstract int getGlyphCode(int glyphIndex)
Font , который создал этот GlyphVector.- Параметры:
-
glyphIndex- индекс в этомGlyphVector, который соответствует глифу, из которого необходимо извлечь код глифа. - Возвращает:
- код глифа глифа в указанном
glyphIndex. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector
getGlyphCodes
public abstract int[] getGlyphCodes(int beginGlyphIndex, int numEntries, int[] codeReturn)
Font , используемого для создания этого GlyphVector . Этот метод используется для удобства и повышения производительности при обработке кодов глифов. Если массив не передан, создается новый массив.- Параметры:
-
beginGlyphIndex- индекс в этомGlyphVector, с которого нужно начать извлечение кодов глифов -
numEntries- количество кодов глифов для извлечения -
codeReturn- массив, который получает коды глифов и затем возвращается - Возвращает:
- массив кодов глифов для указанных глифов.
- Исключения:
-
IllegalArgumentException- еслиnumEntriesменьше 0 -
IndexOutOfBoundsException- еслиbeginGlyphIndexменьше 0 -
IndexOutOfBoundsException- если суммаbeginGlyphIndexиnumEntriesбольше количества глифов в этомGlyphVector
getGlyphCharIndex
public int getGlyphCharIndex(int glyphIndex)
- Параметры:
-
glyphIndex- индекс глифа - Возвращает:
- индекс первого символа, представленного глифом
- С тех пор:
- 1.4
getGlyphCharIndices
public int[] getGlyphCharIndices(int beginGlyphIndex, int numEntries, int[] codeReturn)
- Параметры:
-
beginGlyphIndex- индекс первого глифа -
numEntries- количество индексов глифов -
codeReturn- массив, в который нужно вернуть индексы символов - Возвращает:
- массив индексов символов, по одному на глиф.
- С тех пор:
- 1.4
getLogicalBounds
public abstract Rectangle2D getLogicalBounds()
GlyphVector. Этот метод используется при позиционировании этого GlyphVector относительно визуально смежных объектов GlyphVector.- Возвращает:
- a
Rectangle2Dкоторый является логическими границами этогоGlyphVector.
getVisualBounds
public abstract Rectangle2D getVisualBounds()
GlyphVector Визуальные границы — это область ограничивающей рамки контура этого GlyphVector. Из-за растрирования и выравнивания пикселей возможно, что эта рамка не включает все пиксели, затронутые рендерингом этого GlyphVector.- Возвращает:
- a
Rectangle2Dограничивающая рамка этогоGlyphVector.
getPixelBounds
public Rectangle getPixelBounds(FontRenderContext renderFRC, float x, float y)
GlyphVector при рендеринге в графическом режиме с заданным FontRenderContext в заданном месте. RenderFRC не обязательно должен совпадать с FontRenderContext этого GlyphVector, и может быть null. Если он null, используется FontRenderContext этого GlyphVector. Входная реализация возвращает визуальные границы, смещенные по x, y и округляются до ближайшего целого значения (т. е. возвращает целую прямоугольную область, которая охватывает визуальные границы) и игнорирует FRC. Подклассы должны переопределить этот метод.- Параметры:
-
renderFRC-FontRenderContextGraphics. -
x- координата x, в которой нужно отобразить этотGlyphVector. -
y- координата y, в которой нужно отобразить этотGlyphVector. - Возвращает:
- a
Rectangleограничивающая пиксели, которые будут затронуты. - С тех пор:
- 1.4
getOutline
public abstract Shape getOutline()
Shape , внутренняя часть которого соответствует визуальному представлению этого GlyphVector.- Возвращает:
- a
Shape, являющийся контуром этогоGlyphVector.
getOutline
public abstract Shape getOutline(float x, float y)
Shape, внутренняя часть которого соответствует визуальному представлению этого GlyphVector при отрисовке в координатах x, y.- Parameters:
-
x- координата X этогоGlyphVector. -
y- координата Y этогоGlyphVector. - Returns:
Shape, представляющий собой контур этогоGlyphVectorпри отрисовке в указанных координатах.
getGlyphOutline
public abstract Shape getGlyphOutline(int glyphIndex)
Shape, внутренняя часть которого соответствует визуальному представлению указанного глифа внутри этого GlyphVector Глиф возвращается относительно начала каждого индивидуального глифа.- Parameters:
-
glyphIndex- индекс в этомGlyphVector - Returns:
Shape, который представляет собой контур глифа по указанномуglyphIndexэтогоGlyphVector.- Throws:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector
getGlyphOutline
public Shape getGlyphOutline(int glyphIndex, float x, float y)
Shape, внутренняя часть которого соответствует визуальному представлению указанного глифа внутри этого GlyphVector, смещенного до x, y. Глиф возвращается относительно начала каждого индивидуального глифа.- Parameters:
-
glyphIndex- индекс в этомGlyphVector -
x- координата X положения этогоGlyphVector -
y- координата Y положения этогоGlyphVector - Returns:
Shape, который представляет собой контур глифа по указанномуglyphIndexэтогоGlyphVectorпри отрисовке в указанных координатах.- Throws:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector - Since:
- 1.4
getGlyphPosition
public abstract Point2D getGlyphPosition(int glyphIndex)
GlyphVector Если glyphIndex равно числу глифов в этом GlyphVector, этот метод возвращает позицию после последнего глифа. Эта позиция используется для определения продвижения всего GlyphVector.- Parameters:
-
glyphIndex- индекс в этомGlyphVector - Returns:
- объект
Point2D, представляющий собой положение глифа по указанномуglyphIndex. - Throws:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше числа глифов в этомGlyphVector - See Also:
setGlyphPosition
public abstract void setGlyphPosition(int glyphIndex, Point2D newPos)
GlyphVector Если glyphIndex равно числу глифов в этом GlyphVector, этот метод устанавливает положение после последнего глифа. Эта позиция используется для определения продвижения всего GlyphVector.- Parameters:
-
glyphIndex- индекс в этомGlyphVector -
newPos-Point2Dв котором нужно расположить глиф по указанномуglyphIndex - Throws:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше числа глифов в этомGlyphVector - See Also:
getGlyphTransform
public abstract AffineTransform getGlyphTransform(int glyphIndex)
GlyphVector Преобразование относительно позиции глифа. Если не было применено специального преобразования, возвращается null. Нулевое значение указывает тождественное преобразование.- Parameters:
-
glyphIndex- индекс в этомGlyphVector - Returns:
- объект
AffineTransform, который является преобразованием глифа по указанномуglyphIndex. - Throws:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector - See Also:
setGlyphTransform
public abstract void setGlyphTransform(int glyphIndex, AffineTransform newTX)
GlyphVector Преобразование относительно позиции глифа. Аргумент null для newTX указывает, что для указанного глифа не применяется специальное преобразование. Этот метод можно использовать для поворота, отражения, перемещения и масштабирования глифа. Добавление преобразования может привести к существенным изменениям производительности.- Parameters:
-
glyphIndex- индекс в этомGlyphVector -
newTX- новое преобразование глифа поglyphIndex - Throws:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector - See Also:
getLayoutFlags
public int getLayoutFlags()
- Returns:
- целое число, содержащее флаги, описывающие состояние
- Since:
- 1.4
- See Also:
getGlyphPositions
public abstract float[] getGlyphPositions(int beginGlyphIndex, int numEntries, float[] positionReturn)
beginGlyphIndex + position/2. Нечетные элементы массива, начиная с первого, представляют координаты Y глифа с номером beginGlyphIndex + (position-1)/2. Если beginGlyphIndex равно числу глифов в этом GlyphVector, этот метод получает позицию после последнего глифа, и эта позиция используется для определения продвижения всего GlyphVector.- Parameters:
-
beginGlyphIndex- индекс, с которого начинать извлечение позиций глифов -
numEntries- количество глифов для извлечения -
positionReturn- массив, который получает позиции глифов и затем возвращается. - Returns:
- массив позиций глифов, указанных
beginGlyphIndexиnumEntries. - Throws:
-
IllegalArgumentException- еслиnumEntriesменьше 0 -
IndexOutOfBoundsException- еслиbeginGlyphIndexменьше 0 -
IndexOutOfBoundsException- если суммаbeginGlyphIndexиnumEntriesбольше количества глифов в этомGlyphVectorплюс один
getGlyphLogicalBounds
public abstract Shape getGlyphLogicalBounds(int glyphIndex)
GlyphVector Эти логические границы имеют четыре стороны, две из которых параллельны базовой линии под преобразованием глифа, а две другие общие с соседними глифами, если они присутствуют. Этот метод полезен для проверки попадания в указанный глиф, позиционирования курсора в начале или конце глифа и для рисования выделенной области вокруг указанного глифа.- Parameters:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, из которого необходимо получить его логические границы - Returns:
- объект
Shape, представляющий собой логические границы глифа по указанномуglyphIndex. - Throws:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector - See Also:
getGlyphVisualBounds
public abstract Shape getGlyphVisualBounds(int glyphIndex)
GlyphVector. Границы, возвращаемые этим методом, позиционированы относительно начала каждого отдельного глифа.- Параметры:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, для которого необходимо получить его визуальные границы - Возвращает:
- a
Shape, представляющий визуальные границы глифа по указанномуglyphIndex. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector - См. также:
getGlyphPixelBounds
public Rectangle getGlyphPixelBounds(int index, FontRenderContext renderFRC, float x, float y)
GlyphVector отображается в Graphics с заданным FontRenderContext в заданном месте. RenderFRC не обязательно должен совпадать с FontRenderContext этого GlyphVector, и может быть null. Если он null, используется FontRenderContext этого GlyphVector. Базовое реализация возвращает визуальные границы глифа, смещенные по x, y и округлённые до ближайшего целого значения, игнорируя FRC. Подклассы должны переопределять этот метод.- Параметры:
-
index- индекс глифа. -
renderFRC-FontRenderContextGraphics. -
x- положение по оси X для отображения этогоGlyphVector. -
y- положение по оси Y для отображения этогоGlyphVector. - Возвращает:
- a
Rectangle, ограничивающий пиксели, которые будут затронуты. - С:
- 1.4
getGlyphMetrics
public abstract GlyphMetrics getGlyphMetrics(int glyphIndex)
GlyphVector.- Параметры:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, для которого необходимо получить его метрики - Возвращает:
- объект
GlyphMetrics, представляющий метрики глифа по указанномуglyphIndexв этомGlyphVector. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector
getGlyphJustificationInfo
public abstract GlyphJustificationInfo getGlyphJustificationInfo(int glyphIndex)
GlyphVector.- Параметры:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, для которого необходимо получить его свойства выравнивания - Возвращает:
- объект
GlyphJustificationInfo, представляющий свойства выравнивания глифа по указанномуglyphIndexв этомGlyphVector. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector
equals
public abstract boolean equals(GlyphVector set)
GlyphVector этому GlyphVector.- Параметры:
-
set- указанныйGlyphVectorдля проверки - Возвращает:
-
trueесли указанныйGlyphVectorравен этомуGlyphVector;falseв противном случае.
© 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/font/GlyphVector.html