| Форум| Гостевая| Ссылки| Программы| Исходные тексты| Наши партнеры|
   
| Главная| Рассылки| Услуги| Библиотека| Новости| Авторам| Программистам| Студентам|
delphi c++ assembler
 

Оглавление

Рисование в окне
Контекст отображения
Установка атрибутов
Определение атрибутов
Рисование фигур
Аплет Draw
Исходные тексты
Проект аплета

    Рисование геометрических фигур

    В этом разделе мы опишем методы класса Graphics, предназначенные для рисования элементарных геометрических фигур, таких как линии, прямоугольники, окружности и так далее.

    Линии

    Для того чтобы нарисовать прямую тонкую сплошную линию, вы можете воспользоваться методом drawLine, прототип которого приведен ниже:

    public abstract void drawLine(int x1, 
      int y1,int x2, int y2);

    Концы линии имеют координаты (x1, y1) и (x2, y2), как это показано на рис. 1.

    pic01.gif (2176 bytes)

    Рис. 1. Рисование прямой линии

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

    Прямоугольники и квадраты

    Среди методов класса Graphics есть несколько, предназначенных для рисования прямоугольников. Первый из них, с именем drawRect, позволяет нарисовать прямоугольник, заданный координатами своего левого верхнего угла, шириной и высотой:

    public void drawRect(int x, int y, 
      int width, int height);

    Параметры x и y задают, соответственно, координаты верхнего левого угла, а параметры width и height - высоту и ширину прямоугольника (рис. 2).

    pic02.gif (2472 bytes)

    Рис. 2. Рисование прямоугольника

    В отличие от метода drawRect, рисующего только прямоугольную рамку, метод fillRect рисует заполненный прямоугольник. Для рисования и заполнения прямоугольника используется цвет, выбранный в контекст отображения (рис. 3).

    pic03.gif (3126 bytes)

    Рис. 3. Рисование заполненного прямоугольника

    Прототип метода fillRect приведен ниже:

    public abstract void fillRect(int x, int y, 
      int width, int height);

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

    public abstract void drawRoundRect(int x, 
      int y, int width,
      int height, int arcWidth, int arcHeight);

    Параметры x и y определяют координаты верхнего левого угла прямоугольника, параметры width и height задают, соответственно его ширину и высоту.

    Размеры эллипса, образующего закругления по углам, вы можете задать с помощью параметров arcWidth и arcHeight. Первый из них задает ширину эллипса, а второй - высоту (рис. 4).

    pic04.gif (3197 bytes)

     

    Рис. 4. Рисование прямоугольника с закругленными углами

    Метод fillRoundRect позволяет нарисовать заполненный прямоугольник с закругленными углами (рис. 5).

    pic05.gif (3887 bytes)

    Рис. 5. Рисование заполненного прямоугольника с закругленными углами

    Назначение параметров этого метода аналогично назначению параметров только что рассмотренного метода drawRoundRect:

    public abstract void fillRoundRect(int x,
     int y,
     int width, int height,
     int arcWidth, int arcHeight);

    Метод fill3Drect предназначен для рисования выступающего или западающего прямоугольника:

    public void fill3DRect(int x, int y,
      int width, int height, boolean raised);

    Если значение параметра raised равно true, рисуется выступающий прямоугольник, если false - западающий. Назначение остальных параметров аналогично назначению параметров метода drawRect.

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

    Для рисования многоугольников в классе Graphics предусмотрено четыре метода, два из которых рисуют незаполненные многоугольники, а два - заполненные.

    Первый метод рисует незаполненный многоугольник, заданный массивами координат по осям X и Y:

    public abstract void drawPolygon(
      int xPoints[],
      int yPoints[], int nPoints);

    Через параметры xPoints и yPoints передаются, соответственно, ссылки на массивы координат по оис X и Y. Параметр nPoints задает количество точек в массивах.

    На рис. 6 показан многоугольник, нарисованный методом drawPolygon.

    pic06.gif (2719 bytes)

    Рис. 6. Многоугольник, нарисованный методом drawPolygon

    В этом многоугольнике шесть вершин с координатами от (x0, y0) до (x5, y5), причем для того чтобы он стал замкнутым, координаты первой и последней вершины совпадают.

    Второй метод также рисует незаполненный многоугольник, однако в качестве параметра методу передается ссылка на объект Polygon:

    public void drawPolygon(Polygon p);

    Класс Polygon достаточно прост. Приведем описание его полей, конструкторов и методов:

    Поля класса

    • npoints

    Количество вершин

    public int npoints;
    • xpoints

    Массив координат по оси X

    public int xpoints[];
    • ypoints

    Массив координат по оси Y

    public int ypoints[]

    Конструкторы

    public Polygon ();
    public Polygon(int xpoints[], 
      int ypoints[], int npoints);

    Методы

    • addPoint

    Добавление вершины

    public void addPoint(int x, int y);
    • getBoundingBox

    Получение координат охватывающего прямоугольника

    public Rectangle getBoundingBox();
    • inside

    Проверка, находится ли точка внутри многоугольника

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

    Если вам нужно нарисовать заполненный многоугольник (рис. 7), то для этого вы можете воспользоваться методами, приведенными ниже:

    public abstract void fillPolygon(
     int xPoints[],
     int yPoints[], int nPoints);
    
    public void fillPolygon(Polygon p);

    Первый из этих методов рисует многоугольник, координаты вершин которого заданы в массивах, второй - получая объект класса Polygon в качестве параметра.

    pic07.gif (3128 bytes)

    Рис. 7. Многоугольник, нарисованный методом fillPolygon

    Овалы и круги

    Для рисования окружностей и овалов вы можете воспользоваться методом drawOval:

    public abstract void drawOval(
      int x, int y,
      int width, int height);

    Параметры этого методы задают координаты и размеры прямоугольника, в который вписывается рисуемый овал (рис. 8).

    pic08.gif (2591 bytes)

    Рис. 8. Рисование овала

    Метод fillOval предназначен для рисования заполненного овала (рис. 9). Назначение его параметров аналогично назначению параметров метода drawOval:

    public abstract void fillOval(
      int x, int y,
      int width, int height);

    pic09.gif (3122 bytes)

    Рис. 9. Рисование заполненного овала

    Сегменты

    Метод drawArc предназначен для рисования незаполненного сегмента (рис. 10). Прототип этого метода приведен ниже:

    public abstract void drawArc(
     int x, int y,
     int width, int height, 
     int startAngle, int arcAngle);

    pic10.gif (3409 bytes)

    Рис. 10. Рисование незаполненного сегмента

    Параметры x, y, width и height задают координаты прямоугольника, в который вписан сегмент.

    Параметры startAngle и arcAngle задаются в градусах. Они определяют, соответственно, начальный угол и угол разворота сегмента.

    Для того чтобы нарисовать заполненный сегмент, вы можете воспользоваться методом fillArc:

    public abstract void fillArc(int x, int y,
      int width, int height, 
      int startAngle, int arcAngle);

    Задание области ограничения

    Если для окна аплета задать область ограничения, то рисование будет возможно только в пределах этой области. Область ограничения задается методом clipRect, прототип которого мы привели ниже:

    public abstract void clipRect(
     int x, int y,
     int width, int height);

    Параметры x, y, width и height задают координаты прямоугольной области ограничения.

    Копирование содержимого прямоугольной области

    Метод copyArea позволяет скопировать содержимое любой прямоугольной области окна аплета:

    public abstract void copyArea(
     int x, int y,
     int width, int height, int dx, int dy);

    Параметры x, y, width и height задают координаты копируемой прямоугольной области. Область копируется в другую прямоугольную область такого же размера, причем параметры dx и dy определяют координаты последней.



Java | Продукты и решения | Технологии | Сервис и обучение
О компании | Партнеры | Новости | Поиск
Sun Microsystems Inc. Corporate Information Our partners News and Events Search on site Java Computing Products and Solutions Technologies and Researches Education and Service Content
Используются технологии uCoz

Rambler's Top100 Rambler's Top100

©  Adept Design Studio

Используются технологии uCoz