Главная Интернет WEB-учебник Java в примерах


Интернет клуб

Новая страница
Описание html
Javascript
Java в примерах

Что такое JAVA?
Первое приложение на JAVA
Первый апплет на JAVA
Управление шрифтами
Строковые переменные
Работа с массивами
Работа с графикой
Операции с мышкой
Операции с клавиатурой
Структура апплета
Работа с потоками
Передача параметров в апплет
Загрузка изображения в апплет
Контроль за ходом загрузки изображения
Двойная буферизация
Создание изображения из массива данных
Корректировка изображения

Полезные сайты
Задайте вопрос









Web-учебник. Раздел 4. Java в примерах.

Работа с графикой







В данном разделе рассмотрим рисование в окне апплета простейших геометрических фигур.
Начальной точкой каждого окна считается его левый верхний угол с координатами (0, 0) . Координаты задаются в пикселях.
Первая координата увеличивается слева направо.
Вторая координата увеличивается сверху вниз.
Если фигура (линия) превосходит по размеру окно апплета, то она обрезается.
Вся информация выводится в окно апплета с помощью графического контекста, который находится в классе Graphics и может быть получен разными способами, например, в качестве параметра при вызове метода Paint() (То есть это то, что мы использовали во всех предыдущих примерах).
Фигуры изображаются выбранным в данный момент цветом, а по умолчанию - черным.
Ниже приводятся графические методы:

1. Рисование прямых линий.
drawLine(X1, Y1, X2, Y2);
Здесь:
X1, Y1 - координаты начальной точки,
X2, Y2 - координаты конечной точки.

2. Рисование прямоугольников.
Вывод контура прямоугольника:
drawRect(X1, Y1, HX, HY);
Здесь:
X1, Y1 - координаты верхнего левого угла прямоугольника,
HX, HY - длина и высота прямоугольника.

Вывод заполненного прямоугольника:
fillRect(X1, Y1, HX, HY);
с теми же значениями параметров.

Прямоугольник с закругленными углами:
drawRoundRect(X1, Y1, HX, HY, DX, DY);
первые 4 параметра не изменились:
X1, Y1 - координаты верхнего левого угла прямоугольника,
HX, HY - длина и высота прямоугольника,
DX, DY - соответственно диаметры закруглений вдоль осей.

Заполненный прямоугольник с закругленными углами:
fillRoundRect(X1, Y1, HX, HY, DX, DY);
с теми же значениями параметров.

3. Рисование эллипсов и окружностей.
Для изображения контура эллипса используется метод:
drawOval(X1, Y1, HX, HY);
в качестве параметров используются параметры описанного прямоугольника.

Для изображения заполненного эллипса эллипса используется метод:
fillOval(X1, Y1, HX, HY);

Для изображения круга задайте квадрат в качестве описанного прямоугольника.

4. Рисование дуг.
Дуга изображается с помощью следующих методов:
drawArc(X1, Y1, HX, HY, G1, G2);
fillArc(X1, Y1, HX, HY, G1, G2);
Дуга ограничивается прямоугольником, верхний левый угол которого находится в точке X1, Y1 а ширина и высота - соответственно HX, HY
G1 - начальный угол в градусах,
G2 - угол в градусах, образуемый дугой.

5. Рисование многоугольников.
Фигуры произвольной формы можно нарисовать с помощью следующих методов:
drawPolygon(X[ ], Y[ ], N);
fillPolygon(X[ ], Y[ ], N);
вершины многоугольника задаются парами координат, содержащихся в массивах X[ ], Y[ ]
Число вершин многоугольнике задается параметром N.

Апплет MyFirstDraw представляет нам некоторые из этих фигур.


//------------------------------------------------------------  
//   Program :  MyFirstDraw
//------------------------------------------------------------  
//   Author  :  Katz Yakov 
//------------------------------------------------------------  
//   Date    :  11/12/97
//------------------------------------------------------------  
import  java.awt.*;
import  java.applet.*;
//------------------------------------------------------------  
// Определение класса MyFirstDraw 
public  class  MyFirstDraw  extends  Applet  {
   // Определение метода перерисовки окна апплета 
   public  void  paint  (Graphics  dr) {
      // Задание массива точек для многоугольника 
      int Plane_X[] = {20, 100, 200, 280, 200, 100};
      int Plane_Y[] = {150, 120, 120, 150, 180, 180};
      // Заполнение желтого прямоугольника  
      dr.setColor(Color.yellow);
      dr.fillRect(10, 10, 279, 269);
      // Красный контур вокруг желтого прямоугольника 
      dr.setColor(Color.maroon);
      dr.drawRect(10, 10, 279, 269);
      // Синий прямоугольник  
      dr.setColor(Color.navy);
      dr.fillRect(20, 20, 70, 70);
      // Зеленая дуга  
      dr.setColor(Color.navy);
      dr.fillArc(110, 20, 70, 70, 0, 180);
      // Прямоугольник с закругленными углами  
      dr.setColor(Color.orange);
      dr.fillRoundRect(200, 20, 70, 70, 30, 30);
      // Белый круг с синей окантовкой  
      dr.setColor(Color.white);
      dr.fillOval(20, 200, 70, 70);
      dr.setColor(Color.navy);
      dr.drawOval(20, 200, 70, 70);
      // Эллипс  
      dr.setColor(Color.magenta);
      dr.fillOval(110, 200, 160, 70);
      // Многоугольник  
      dr.setColor(Color.pink);
      dr.fillPolygon(Plane_X, Plane_Y, 6);
   }
}

Апплет MyFirstDraw выглядит следующим образом:

В этом апплете мы использовали только стандартные цвета. В принципе, можно выбрать любой цвет в формате RGB. Для этого определите цвет в следующем виде:
Color curr_color = new Color(R, G, B);
(Здесь R, G, B - произвольные числа от 0 до 255)
и задайте:
dr.getColor(curr_color);







  ©1996-2007   Megapolis Org   E-mail:   info@megapolis.org