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);




Начало  Назад  Вперед



Книжный магазин