Spec-Zone .ru
спецификации, руководства, описания, API
След: 2-D Графика
Урок: Работа с Геометрией
Рисование Геометрических Примитивов
Домашняя страница > 2-D Графика > Работа с Геометрией

Рисование Геометрических Примитивов

Java 2D™ API обеспечивает несколько классов, которые определяют общие геометрические объекты, такие как точки, строки, кривые, и прямоугольники. Эти классы геометрии являются частью java.awt.geom пакет.
PathIterator интерфейс определяет методы для того, чтобы получить элементы от пути.
Shape интерфейс обеспечивает ряд методов для описания и осмотра геометрических объектов пути. Этот интерфейс реализуется GeneralPath class и другие классы геометрии.

Все примеры, представленные в этом разделе, создают конфигурации при использовании java.awt.geom пакет и затем представляет их при использовании Graphics2D class. Чтобы начать Вы получаете a Graphics2D объект, например бросая Graphics параметр paint() метод.

public void paint (Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    ...
}

Точка

Point class создает точку, представляющую расположение в (x, y) координатное пространство. Подклассы Point2D.Float и Point2D.Double обеспечьте соответственно и двойную точность плавающую для того, чтобы она сохранила координаты точки.

//Create Point2D.Double
Point2D.Double point = new Point2D.Double(x, y);

Чтобы создать точку с координатами 0,0, Вы используете конструктора по умолчанию, Point2D.Double().
Можно использовать setLocation метод, чтобы установить позицию точки следующим образом:

Кроме того, Point2D У class есть методы, чтобы вычислить расстояние между текущей точкой и точкой с данными координатами, или расстояние между двумя точками.

Строка

Line2D class представляет линейный сегмент в (x, y) координатное пространство. Line2D. Float и Line2D.Double подклассы определяют строки в и двойной точности плавающей. Например:

// draw Line2D.Double
g2.draw(new Line2D.Double(x1, y1, x2, y2));

Строка

Этот class включает несколько setLine() методы, чтобы определить конечные точки строки.
Aternatively, конечные точки строки могли быть определены при использовании конструктора для Line2D.Float class следующим образом:

Используйте Штриховой объект в Graphics2D class, чтобы определить штрих для пути строки.

Кривые

java.awt.geom пакет позволяет Вам создать квадратный или кубический сегмент кривой.

Квадратный Сегмент Кривой

QuadCurve2D class реализует Shape интерфейс. Этот class представляет квадратный параметрический сегмент кривой в (x, y) координатное пространство. QuadCurve2D.Float и QuadCurve2D.Double подклассы определяют квадратную кривую в и двойной точности плавающей.

Несколько setCurve методы используются, чтобы определить две конечных точки и контрольную точку кривой, координаты которой могут быть определены непосредственно координатами других точек и при использовании данного массива.
Очень полезный метод, setCurve(QuadCurve2D), устанавливает квадратную кривую с теми же самыми конечными точками и контрольной точкой как предоставленная кривая. Например:

// create new QuadCurve2D.Float
QuadCurve2D q = new QuadCurve2D.Float();
// draw QuadCurve2D.Float with set coordinates
q.setCurve(x1, y1, ctrlx, ctrly, x2, y2);
g2.draw(q);

Квадратный параметрический сегмент кривой

Кубический Сегмент Кривой

CubicCurve2D class также реализует Shape интерфейс. Этот class представляет кубический параметрический сегмент кривой в (x, y) координатное пространство. CubicCurve2D.Float и CubicCurve2D.Double подклассы определяют кубическую кривую в и двойной точности плавающей.

CubicCurve2D У class есть подобные методы для того, чтобы установить кривую как QuadraticCurve2Dclass, кроме со второй контрольной точкой. Например:

// create new CubicCurve2D.Double
CubicCurve2D c = new CubicCurve2D.Double();
// draw CubicCurve2D.Double with set coordinates
c.setCurve(x1, y1, ctrlx1,
           ctrly1, ctrlx2, ctrly2, x2, y2);
g2.draw(c);
Кубический Сегмент Кривой

Прямоугольник

Классы, которые определяют примитивы, представленные в следующем примере, расширяются RectangularShape class, который реализует Shape взаимодействуйте через интерфейс и добавляет несколько собственных методов.

Эти методы позволяют Вам получить информацию о расположении формы и размере, исследовать центральную точку прямоугольника, и установить границы формы.

Rectangle2D class представляет прямоугольник, определенный расположением (x, y) и размерность (w x h). Rectangle2D.Float и Rectangle2D.Double подклассы определяют прямоугольник в и двойной точности плавающей. Например:

// draw Rectangle2D.Double
g2.draw(new Rectangle2D.Double(x, y,
                               rectwidth,
                               rectheight));

Прямоугольник

RoundRectangle2D class представляет прямоугольник с закругленными углами, определенными расположением (x, y), размерность (w x h), и width и height угловой дуги. RoundRectangle2D.Float и RoundRectangle2D.Double подклассы определяют круглый прямоугольник в и двойной точности плавающей.

Округленный прямоугольник определяется со следующими параметрами:

Установить расположение, размер, и дуги a RoundRectangle2D объект, используйте метод setRoundRect(double a, double y, double w, double h, double arcWidth, double arcHeight). Например:

// draw RoundRectangle2D.Double
g2.draw(new RoundRectangle2D.Double(x, y,
                                   rectwidth,
                                   rectheight,
                                   10, 10));

Округленный Прямоугольник

Эллипс

Ellipse2D class представляет эллипс, определенный ограничительным прямоугольником. Ellipse2D.Float и Ellipse2D.Double подклассы определяют эллипс в и двойной точности плавающей.

Эллипс полностью определяется расположением, width и height. Например:

// draw Ellipse2D.Double
g2.draw(new Ellipse2D.Double(x, y,
                             rectwidth,
                             rectheight));

Эллипс

Дуга

Чтобы потянуть часть эллипса, Вы используете Arc2D class. Этот class представляет дугу, определенную ограничительным прямоугольником, углом запуска, угловой степенью, и типом закрытия. Arc2D.Float и Arc2D.Double подклассы определяют эллипс в и двойной точности плавающей.

Arc2D class определяет следующие три типа дуг, представленных соответствующими константами в этом class: ОТКРЫТЫЙ, КРУГ и АККОРД.

Дуга

Несколько наборов методов размер и параметры дуги:

Кроме того, можно использовать setArcByCenter метод, чтобы определить дугу от центральной точки, данной ее координатами и радиусом.

// draw Arc2D.Double
g2.draw(new Arc2D.Double(x, y,
                         rectwidth,
                         rectheight,
                         90, 135,
                         Arc2D.OPEN));

Дуга

ShapesDemo2D.java пример кода содержит реализации от всех описанных геометрических примитивов. Для получения дополнительной информации о классах и методах, представленных в этом разделе, см. java.awt.geom спецификация.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Работа с Геометрией
Следующая страница: Рисование Произвольных Форм