Microsoft Visual J++. Создание приложений и аплетов на языке Java


Многоугольники


Для рисования многоугольников в классе 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


Содержание раздела