Основы графических построений
Экран монитора (независимо от того, в каком устройстве он расположен: и обычный монитор, и ноутбук, и смартфон, и планшет имеют одинаковые принципы функционирования мониторов) состоит из сетки пикселей, которую можно представить как листок в клеточку.
Идентификация места на этой сетке происходит из-за указания координат х и у:
Обратите внимание, что:
|
пример 1
Для рисования линии между двумя точками - существует команда line - line (x1, y1, x2, y2)
size(400,400);//устанавливает размер окна Числа 40,30 - это координаты верхней левой точки линии, а 60,90 - координаты правой нижней точки линии. |
|
Задание . Измените код , нарисовав второй отрезок,чтобы получилась картина как на рисунке |
Окончание линии.
Установить атрибуты линий
|
Функция strokeJoin() определяет вид соединения линий (углы);
Функция strokeCap() - как будут выглядеть начальная и конечная точки линий
|
size(200,150);//устанавливает размер окна stroke(255); strokeCap(ROUND);// Скруглить концы линий strokeCap(PROJECT);// линия удлиняется в зависимости от толщины кисти strokeCap(SQUARE);// Концы линий – квадратные |
Прямоугольники
rect(x,y,width,height) - рисует прямоугольник
rect(MODE) - меняет интерпретацию параметров прямоугольника:
- rectMode(CENTER) => первая пара аргументов отвечает за центр прямоугольника (а не за верхний левый угол
- rectMode(RADIUS) => так же как и CENTER но вторые два аргумента отвечают за половину соответственно ширины и высоты.
- rectMode(CORNER) => первая пара аргументов отвечает за верхний левый угол (вариант по умолчанию)
- rectMode(CORNERS) =>вторые два аргумента обрабатываются как координаты правого нижнего угла (а не ширина с высотой)
режим по умолчанию – CORNER (х и у – координаты левого угла )
пример 2
По этим же координатам можно нарисовать прямоугольник rect - rect (x1, y1, x2, y2)
size(400,400);//устанавливает размер окна Обратите внимание, что числа x1, y1- это координаты верхнего левого угла прямоугольника, а x2, y2- его размеры в ширину(60) и высоту (90) соответственно. |
цвета
1. Цвет кодируется в системе RGB, с дополнительным параметром прозрачности (alpha).
2. Цвет линии (цвет рисования) назначается командой stroke (red, green, blue)
3. Цвет заливки (фигуры) назначается командой fill (red, green, blue)
пример 3
size(400,400);//устанавливает размер окна stroke(0,250,0); //устанавливает цвет контура прямоугольника strokeWeight(6); //устанавливает толщину линии |
пример 4
Устанавливаем прозрачность
Добавив четвертый параметр к функциям fill() и stroke(), мы сможем регулировать прозрачность.
Этот параметр, также известный как величина alpha, тоже использует диапазон от 0 до 255 для количественного выражения прозрачности:
- величина 0 задает полностью прозрачный объект (он не отобразится),
- 255 - непрозрачный,
- с помощью промежуточных значений можно смешивать цвета
Ее можно указывать отдельной командой, или добавлять четвертый параметр у команды назначения цвета, например: fill (255,255,0, 128)
Полупрозрачный желтый цвет наложился на красный и получили оранжевый:
size(400,400);//устанавливает размер окна stroke(0,250,0); //устанавливает цвет контура прямоугольника strokeWeight(6); //устанавливает толщину линии |
пример 5
size(400,400);//устанавливает размер окна stroke(0,250,0); //устанавливает цвет контура прямоугольника fill(0,255,0,128); //цвет заливки второго прямоугольника, значение прозрачности -128 |
Треугольники и четырехугольники
triangle(х1,у1,х2,у2,х3,у3) - рисует треугольник.
- три пары координат x, y для трех вершин треугольника,
- для упрощения задачи советуем записывать эти точки по часовой стрелке.
quad(x1,y1,x2,y2,x3,y3,x4,у4) - рисует четырехугольник.
- первая точка - (х1,у1),
- остальные три вершины определенны по часовой или протии часовой стрелки (любым из вариантов)
пример 6
size(400,400);//устанавливает размер окна stroke(255,0,0); fill(40,255,0);//устанавливает цвет заливки фигуры //по часовой стрелке |
Рисуем эллипсы и окружности
ellipse(x,y,width,height)
- рисует эллипс в точке с координатами (х,у) с указанными шириной и высотой
ellipseMode()
Меняет интерпретацию параметров эллипса:
- ellipseMode(CENTER) => (х,у) - центр эллипса (режим по умолчанию)
- ellipseMode(RADIUS) => как и в предыдущем случае, но ширина и высота – радиусы, а не диаметры
- ellipseMode(CORNER) => (х,у) - определяет левый верхний угол ограничивающего эллипс прямоугольника
- ellipseMode(CORNERS) => четыре параметра определяют координаты противоположных углов ограничивающего прямоугольника.
пример 7
|
size(200,200);//устанавливает размер окна stroke(255,0,0); /* рисует эллипс в точке с координатами (100,100) /*четыре параметра определяют координаты противоположных углов ellipseMode(CORNER); |
пример 8
size(400,400);//устанавливает размер окна fill(255,0,0); //цвет заливки - красный fill(0,255,0); //цвет заливки - зеленый fill(0,0,255); //цвет заливки - синий |
Использование модели RGB может не быть интуитивно понятным, поэтому используйте цветовую палитру Tools-Color Selector:
⇒
Выберите желаемый цвет, а затем используйте параметры R, G и B для функций background(), fill() и stroke().
пример 9. Устанавливаем прозрачность
size(480,120);//устанавливает размер окна fill(255,0,0,160); //цвет заливки - красный fill(0,255,0,160); //цвет заливки - зеленый fill(0,0,255,160); //цвет заливки - синий |
пример 10. Рисуем четыре круга
void setup () { |
Рисуем часть эллипса
Функция arc() позволяет изобразить часть эллипса - arc(x,y,width,height,start,end).
Рисует дугу, как сектор эллипса с координатами (х,у) и с указанными шириной и высотой.
Этот фрагмент или сектор определяется углами , заданными как start и end (в радианах по умолчанию) по часовой стрелке
Имеет 6 параметров:
- Первый и второй параметр устанавливают положение,
- третий и четвертый - определяют ширину и высоту,
- пятый параметр устанавливает угол начала дуги,
- шестой устанавливает конец дуги.
- их параметры тоже интерпретируются подобно ellipseMode()
- в процессинге заполнение фигур происходит по умолчанию, даже для незамкнутых фигур. Функция noFill() должна быть вызвана явно, если заполнение нежелательно.
Значения 4 углов в радианах используются настолько часто, что в Processing им присвоены имена:
- PI - 180,
- QUARTER_PI - 45,
- НALF_PI - 90,
- TWO_PI - 360.
пример 11
stroke(255,0,0); fill(40,255,0);//устанавливает цвет заливки фигуры noFill(); // не заполнять |
пример 12
size(480,120);//устанавливает размер окна arc(90,60,80,80,0,HALF_PI); //start = 0, end = 90(градусов) или 3.14 радиан arc(190,60,80,80,0,PI+HALF_PI);//start = 0, end = 270(градусов) или 4.71 радиан arc(290,60,80,80,PI,TWO_PI +HALF_PI);//start = 90, end = 450(градусов) или 1.57+6.29 радиан arc(390,60,80,80,QUARTER_PI,PI +QUARTER_PI);//start = 45, end = 225(градусов) или 3.93 радиан |