Многоугольники
Для рисования многоугольников в классе Graphics предусмотрено четыре метода, два из которых рисуют незаполненные многоугольники, а два - заполненные.
Первый метод рисует незаполненный многоугольник, заданный массивами координат по осям X и Y:
public abstract void
drawPolygon(int xPoints[], int yPoints[], int nPoints);
Через параметры xPoints и yPoints передаются, соответственно, ссылки на массивы координат по оис X и Y. Параметр nPoints задает количество точек в массивах.
На рис. 3.6 показан многоугольник, нарисованный методом drawPolygon.
Рис. 3.6. Многоугольник, нарисованный методом drawPolygon
В этом многоугольнике шесть вершин с координатами от (x0,y0) до (x5, y5), причем для того чтобы он стал замкнутым,координаты первой и последней вершины совпадают.
Второй метод также рисует незаполненный многоугольник, однако в качетсве параметра методу передается ссылка на объект Polygon:
public void drawPolygon(Polygon p);
Класс Polygon достаточно прост, поэтому мы приведем его описание полностью:
public class java.awt.Polygon
extends java.lang.Object
{
// -----------------------------------------------------
// Поля класса
// -----------------------------------------------------
public int npoints; // количество вершин
public int xpoints[]; // массив координат по оси X
public int ypoints[]; // массив координат по оси Y
// -----------------------------------------------------
// Конструкторы
// -----------------------------------------------------
public Polygon();
public Polygon(int xpoints[], int ypoints[], int npoints);
// -----------------------------------------------------
// Методы
// -----------------------------------------------------
// Добавление вершины
public void addPoint(int x, int y);
// Получение координат охватывающего прямоугольника
public Rectangle getBoundingBox();
// Проверка, находится ли точка внутри многоугольника
public boolean inside(int x, int y);
}
Ниже мы показали фрагмент кода, в котором создается многоугольник, а затем в него добавляется несколько точек. Многоугольник рисуется методом drawPolygon:
Polygon p = new Polygon();
p.addPoint(270, 239);
p.addPoint(350, 230);
p.addPoint(360, 180);
p.addPoint(390, 160);
p.addPoint(340, 130);
p.addPoint(270, 239);
g.drawPolygon(p);
Если вам нужно нарисовать заполненный многоугольник (рис. 3.7), то для этого вы можете воспользоваться методами, приведенными ниже:
public abstract void
fillPolygon(int xPoints[], int yPoints[], int nPoints);
public void fillPolygon(Polygon p);
Первый из этих методов рисует многоугольник, координаты вершин которого заданы в массивах, второй - получая объект класса Polygon в качестве параметра.
Рис. 3.6. Многоугольник, нарисованный методом drawPolygon