|
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 экземпляр любого class, который реализует 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 интерфейс, чтобы создать class, который определяет новый тип формы. Не имеет значения, как Вы представляете форму внутренне, пока можно реализовать Shape методы интерфейса. Shape должен быть в состоянии генерировать путь, который определяет его контур.
Например, Вы могли создать простую реализацию Shape это представляет многоугольники как массивы точек. Как только многоугольник создается, к нему можно было передать draw, setClip, или любой другой метод, который ожидает a Shape возразите как параметр.
PolygonPath class должен реализовать Shape методы интерфейса:
| Содержание | Предыдущий | Следующий |