Учебное пособие: Многопоточность и работа с потоками

getHSBColor(float hue, float saturation, float brightness).

Если нет необходимости тщательно подбирать цвета, то можно просто воспользоваться одной из тринадцати статических констант типа Color, имеющихся в классе Color. Вопреки соглашению "Code Conventions" они записываются строчными буквами: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, white, yellow.

Методы класса Color позволяют получить составляющие текущего цвета: getRed(), getGreen(), getBlue(), getAlpha(), getRGB(), getColorSpace(), getComponents().

Два метода создают более яркий brighter() и более темный darker() цвета по сравнению с текущим цветом. Они полезны, если надо выделить активный компонент или, наоборот, показать неактивный компонент бледнее остальных компонентов.

Два статических метода возвращают цвет, преобразованный из цветовой модели RGB в HSB и обратно:

float[] RGBtoHSB(int red, int green, int blue, float[] hsb)

int HSBtoRGB(int hue, int saturation, int brightness)

Создав цвет, можно рисовать им в графическом контексте.

Как нарисовать чертеж

Основной метод рисования

drawLine(int x1, int y1, int х2, int y2)

вычерчивает текущим цветом отрезок прямой между точками с координатами (x1, y1) и (х2, у2).

Одного этого метода достаточно, чтобы, нарисовать любую картину по точкам, вычерчивая каждую точку с координатами (х, у) методом drawLine (x, у, х, у) и меняя цвета от точки к точке. Но никто, разумеется, не станет этого делать.

Другие графические примитивы:

· drawRect(int x, int у, int width, int height) — чертит прямоугольник со сторонами, параллельными краям экрана, задаваемый координатами верхнего левого угла (х, у), шириной width пикселов и высотой height пикселов;

· draw3DRect(int x, int у, int width, int height, boolean raised) — чертит прямоугольник, как будто выделяющийся из плоскости рисования, если аргумент raised равен true, или как будто вдавленный в плоскость, если аргумент raised равен false;

· drawOval(int x, int у, int width, int height) — чертит овал, вписанный в прямоугольник, заданный аргументами метода. Если width == height, то получится окружность;

· drawArc(int x, int у, int width, int height, int startAngle, int arc) — чертит дугу овала, вписанного в прямоугольник, заданный первыми четырьмя аргументами. Дуга имеет величину arc градусов и отсчитывается от угла startAngle. Угол отсчитывается в градусах от оси Ох. Положительный угол отсчитывается против часовой стрелки, отрицательный — по часовой стрелке;

· drawRoundRect (int x, int у, int width, int height, int arcWidth, int arcHeight) — чертитпрямоугольниксзакругленнымикраями. Закругления вычерчиваются четвертинками овалов, вписанных в прямоугольники шириной arcwidth и высотой arcHeight, построенные в углах основного прямоугольника;

· drawPolyline(int[] xPoints, int[] yPoints, int nPoints) — чертит ломаную с вершинами в точках (xPoints[i], ypoints[i]) и числом вершин nPoints;

· drawPolygon(int[] xPoints, int[] yPoints, int nPoints) — чертит ломаную, проводя замыкающий отрезок прямой между первой и последней точкой;

· drawFoiygon(Polygon p) — чертит замкнутую ломаную, вершины которой заданы объектом р класса Polygon.

Класс Polygon

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

Объекты этого класса можно создать двумя конструкторами:

· Polygon () — создает пустой объект;

· Polygon(int[] xPoints, int[] yPoints, int nPoints) — задаются вершины многоугольника (xPoints[i], yPoints[i]) и их число nPoints

После создания объекта в него можно добавлять вершины методом

addPoint(int x, int у)

Логические методы contains() позволяют проверить, не лежит ли в многоугольнике заданная аргументами метода точка, отрезок прямой или целый прямоугольник со сторонами, параллельными сторонам экрана.

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

К-во Просмотров: 391
Бесплатно скачать Учебное пособие: Многопоточность и работа с потоками