Компьютерная графика в Processing
Источники:
-
П. А. Орлов ПРОГРАММИРОВАНИЕ ДЛЯ ДИЗАЙНЕРОВ Учебное пособие
-
Tatiana Volkova Компьютерная графика в Processing (www.slideshare.net/tanjavolkova?utm_campaign=profiletracking&utm_medium=sssite&utm_source=ssslideview)
-
Кейси Риз и Бен Фрай Учимся программировать вместе с Processing Учебное пособие
- Ян Вантомм Processing 2: креативное программирование Учебное пособие
Почему processing ?
-
Processing – достаточно простой язык программирования, основанный на языке java (ява), открытый язык программирования.
-
Изучая Processing вы будете изучать и java, один из самых популярных языков программирования.
-
В любой момент можно экспортировать проект из Processing и запустить его в Android-студию.
-
Processing – бесплатная среда . Она предназначена для написания графических, анимационных и интерактивных программ, для создания мобильных приложений. Предоставляет легкий и быстрый инструментарий для людей, которые хотят программировать изображения, анимации и интерфейсы.
-
Возможна отладка проекта непосредственно на мобильном устройстве, т.е. написали, запустили, проверили. Что-то не устроило – исправили, запустили, снова….
Программа на языке Processing называется скетч, эскиз. Собственно, способ и творчества, при котором испытывается и оценивается большое количество идей, называется скетчингом.
Скетчинг - это способ мыслить. Он эффективен и похож на игру. Основная цель - оценить большое количество идей за короткий промежуток времени
Сначала создается общий эскиз, который в процессе работы уточняется, совершенствуется, получает дополнительный функционал, интерактивность и постепенно приближается к цели.
Среда программирования можно скачать с официального сайта http://www.processing.org/. К стандартной установки следует добавить модули, отвечающие за работу с устройствами Android (при необходимости) и JavaScript.
Режимы визуализации
В processing есть несколько режимов визуализации:
- Java2D; //режим по умолчанию, если ничего не указано, Java2D
- P2D; //режимы Java2D и P2D поддерживают двумерное представление.
- P3D;
- OPENGL.
Системные функции среды Processing
Все наши программы будут состоять из двух основных системных функций:
(дро – рисовать) |
В начале каждой функции поставим надпись void – что означает, что у нас функция ничего не возвращает. Основное отличие этих функций в том, что:
|
Размер окна определяется в функции size() , обычно это одно из первых действий, происходящих в функции setup()
Точка начала координат (0,0) лежит слева сверху, положительное направление оси Х – слева направо, оси Y – сверху вниз |
Основные 2D- примитивы в processing:
- Точки;
- Линии;
- Эллипсы/Окружности/Дуги;
- Прямоугольники;
- Треугольники;
- Четырехугольники;
- Кривые (Безье, Кэтмул-Рома);
- Объекты (свободные формы).
Функции среды Processing
Функции являются основным инструментом для построения программы на Processing. Результат функции зависит от введенных параметров.
В processing многие функции вызывают изменение состояния -> они устанавливают параметры, которые будут оставаться активными, пока мы их не поменяем
Рисуем окно |
Функция size() имеет 2 параметра:
Вы можете установить размер окна во весь экран, для этого запишите: size( screenWidth, screenHeight ). |
||
Функция background() |
Устанавливает цвет фона окна , может иметь три параметра. Обычно это первая функция, которую вы применяете в функции draw(), она очищает экран Например: background (0,255,255); //устанавливает цвет заливки фона , цвет фона определяется Red/Green/Blue палитрой. |
||
Функция frameRate(n) |
Устанавливает скорость смены фреймов (кадров) |
||
Функция noLoop() |
вызов этой функции означает, что наш холст будет отрисовываться один раз на экране. |
||
Функция stroke() |
Функция stroke (red,green,blue); - цвет контура (цвет рисования), например - stroke(0,255,0);
Четвертый параметр, также известный как величина alpha, тоже использует диапазон от 0 до 255 для количественного выражения прозрачности:
|
||
Функция noStroke |
2D фигуры не будут иметь внешней границы (особенно полезно для замкнутых фигур, но влияет на все виды фигур, даже на линии). |
||
Функция strokeWeight() |
Толщина кисти (контура фигуры) указывается функцией strokeWeight(). Единственный ее параметр устанавливает толщину линий, например - strokeWeight(6). |
||
Сглаживаем края контура фигуры |
|
||
Функция fill() |
Цвет заполнения 2D фигуры указывается функцией fill(). Функция может иметь четыре параметра - fill(red,green,blue, alpha). Пример: fill(128) -> fill(128,128,128); |
||
Функция noFill() |
Выключить заливку, Фигуры не будут заполнены |
||
Точки |
point(x,y)
set(x,y,color)
|
||
Линия |
line(x1,y1,x2,y2)
Окончание линии:
|
||
Установить атрибуты линий |
Функция strokeJoin() определяет вид соединения линий (углы);
Функция strokeCap() - как будут выглядеть начальная и конечная точки линий
|
||
прямоугольники |
rect(x,y,width,height) - рисует прямоугольник. например:
Функция rect(MODE) - меняет интерпретацию параметров прямоугольника:
|
||
Треугольники и четырехугольники |
triangle(х1,у1,х2,у2,х3,у3) - три пары координат x/y для трех вершин треугольника. Для упрощения задачи - записывайте эти точки по часовой стрелке. quad(x1,y1,x2,y2,x3,y3,x4, у4) - рисует четырехугольник:
Пример |
||
|
|||
Эллипсы и окружности |
ellipse(x,y,width,height) - рисует эллипс в точке с координатами (х,у) с указанными шириной и высотой ellipseMode() - меняет интерпретацию параметров эллипса
|
||
Дуги Пример |
arc(x,y,width,height,start,end) - рисует дугу, как сектор эллипса с координатами (х,у) и с указанными шириной и высотой. Этот фрагмент или сектор определяется углами , заданными как start и end (в радианах по умолчанию) по часовой стрелке
Функция arc() имеет 6 параметров: • Первый и второй параметр устанавливают положение,
|
||
|
|||
Используем градусы |
функция radians() конвертирует значение в градусах в радианы | ||
Фигуры произвольной формы |
функция endShape(CLOSE), слово CLOSE как параметр функции endShape() способствует заполнению пропуска соединения первой и последней точек фигуры |
||
Генерирование случайных чисел |
|
||
Отсчет время, прошедшее с запуска программы |
функция millis() возвращает значение счетчика. Processing всегда отсчитывает время, прошедшее с запуска программы. Оно измеряется в миллисекундах (одна тысячная секунды); так, после секунды работы программы счетчик досчитает до 1000, после 5 сукунд - до 5000, после минуты - до 60000. Счетчик Processing удобно использовать для запуска анимированных фигур в определенное время |
||
Вывод сообщений на консоль
|
Функция println() Пример: println(a) выведет на консоль значение переменной, println( x + y ); вы можете комбинировать переменные, println( x + " " + y ); println("The time is< | ||