Spec-Zone .ru
спецификации, руководства, описания, API
|
Содержание | Предыдущий | Следующий |
Java 2D™ API обеспечивает несколько классов, которые определяют общие геометрические объекты, такие как точки, строки, кривые, и прямоугольники. Эти новые классы геометрии являются частью java.awt.geom
пакет. Для обратной совместимости, классы геометрии, которые существовали в предыдущих версиях программного обеспечения JDK, такой как Rectangle
, Point
, и Polygon
, останьтесь в java.awt
пакет.
Java 2-D конфигурации API такой как GeneralPath
, Arc2D
, и Rectangle2D
реализуйте Shape
интерфейс, определенный в java.awt
. Shape
обеспечивает общий протокол для описания и осмотра геометрических объектов пути. Новый интерфейс, PathIterator
, определяет методы для того, чтобы получить элементы от геометрии.
Используя классы геометрии, можно легко определить и управлять фактически любым двумерным объектом.
Следующие таблицы приводят ключевые интерфейсы геометрии и классы. Большинство этих интерфейсов и классов являются частью java.awt.geom
пакет. Некоторые, как Shape
, часть java.awt
пакет, прежде всего чтобы поддержать обратную совместимость с более ранними версиями программного обеспечения JDK.
A Shape
экземпляр любого класса, который реализует Shape
интерфейс, такой как GeneralPath
или Rectangle2D.Float
. A Shape
’s контур (схема) упоминается как ее путь.
Когда a Shape
оттягивается, перьевой стиль, определенный Stroke
объект в Graphics2D
контексту применяются к Shape
’s путь. Когда a Shape
заполнено, Paint
в Graphics2D
контекст применяется к области в ее пути. Для получения дополнительной информации см. “Рендеринг с Graphics2D” на странице 15.
A Shape
’s путь может также использоваться, чтобы определить траекторию отсечения. Траектория отсечения определяет то, чем пиксели представляются — только те пиксели, которые лежат в пределах области, определенной траекторией отсечения, представляются. Траектория отсечения является частью Graphics2D
контекст. Для получения дополнительной информации см. “Установку Траектории отсечения” на странице 32.
A GeneralPath
форма, которая может использоваться, чтобы представить любой двумерный объект, который может быть создан из строк и квадратных или кубических кривых. Для удобства, java.awt.geom
обеспечивает дополнительные реализации Shape
интерфейс, которые представляют общие геометрические объекты, такие как прямоугольники, эллипсы, дуги, и кривые. API Java2D™ также обеспечивает специальный тип формы, которая поддерживает конструктивную геометрию области.
Конструктивная Геометрия области (CAG) является процессом создания новых геометрических объектов, выполняя логические операции на существующих объектах. В Java 2-D API, специальный тип Shape
вызванный Area
поддерживает логические операции. Можно создать Area
от любого Shape
.
Areas
поддерживайте следующие Логические операции:
Эти операции иллюстрируются в рисунке 3-1.
Ограничивающий прямоугольник является прямоугольником, который полностью включает геометрию формы. Ограничивающие прямоугольники используются, чтобы определить, был ли объект выбран или "поражен" пользователем.
Shape
интерфейс определяет два метода для того, чтобы получить ограничивающий прямоугольник формы, getBounds
и getBounds2D
. getBounds2D
метод возвращает a Rectangle2D
вместо a Rectangle
, обеспечение описания более высокой точности ограничивающего прямоугольника формы.
Shape
также обеспечивает методы для того, чтобы они определили действительно ли:
contains
)contains
)intersects
)Areas
может использоваться, чтобы быстро создать комплекс Shapes
от простых форм, таких как круги и квадраты. Создать новый комплекс Shape
объединяясь Areas
:
Shapes
, создайте Areas
быть объединенным.add
, subtract
, intersect
, exclusiveOr
.Например, CAG мог использоваться, чтобы создать грушу как показанный в Figure 3-2
.
Тело груши создается, выполняя операцию объединения на двух наложениях Areas
: круг и овал. Листы каждый создаются, выполняя пересечение на двух перекрывающихся кругах и затем присоединяются в сингл Shape
посредством операции объединения. Перекрывающиеся круги также используются, чтобы создать основу посредством двух операций вычитания.
Можно реализовать Shape
интерфейс, чтобы создать класс, который определяет новый тип формы. Не имеет значения, как Вы представляете форму внутренне, пока можно реализовать Shape
интерфейсные методы. Shape
должен быть в состоянии генерировать путь, который определяет его контур.
Например, Вы могли создать простую реализацию Shape
это представляет многоугольники как массивы точек. Как только многоугольник создается, к нему можно было передать draw
, setClip
, или любой другой метод, который ожидает a Shape
возразите как параметр.
PolygonPath
класс должен реализовать Shape
интерфейсные методы:
Содержание | Предыдущий | Следующий |