Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Processing.js

Глава 17 из книги "Архитектура приложений с открытым исходным кодом", том 2.

Оригинал: Processing.js
Автор: Mike Kamermans
Дата публикации: 2 Мая 2012 г.
Перевод: А.Панин
Дата перевода: 19 Августа 2013 г.

Изначально разработанный Ben Fry и Casey Reas, язык программирования Processing начал свое развитие в виде языка программирования с открытым исходным кодом (на основе Java), созданного для помощи участникам сообществ дизайнеров и других творческих личностей в изучении программирования в визуальном контексте. Предоставляя значительно упрощенную модель обработки двумерной и трехмерной графики по сравнению с большинством языков программирования, он был быстро адаптирован для выполнения широкого круга задач, начиная с обучения программированию путем разработки простых визуализаций и заканчивая созданием многостенных художественных инсталляций, а также получил возможность выполнения широкого круга задач, от простого считывания последовательности строк до возможности реализации приложения, фактически являющегося интегрированной средой разработки для программирования и управления популярными платами, предназначенными для создания прототипов на основе открытого аппаратного обеспечения под названием "Arduino". Продолжая набирать популярность, Processing твердо занял свое место легко изучаемого и широко используемого языка программирования для создания любых типов визуализаций, а также выполнения большого количества других задач.

Простейшая программа на языке программирования Processing, называемая "скетч" ("sketch"), состоит из двух функций: setup и draw. Первая функция является основной точкой входа и может содержать любое количество инструкций инициализации. После завершения выполнения функции setup программы на языке Processing могут использовать один из следующих вариантов продолжения работы: 1) вызвать функцию draw и запланировать следующий вызов функции draw по истечении фиксированного временного интервала после завершения работы функции; 2) вызвать функцию draw и ждать событий ввода от пользователя. По умолчанию язык программирования Processing использует первый вариант; вызов функции noLoop приводит к использованию второго варианта. Это обстоятельство позволяет использовать два режима представления скетчей, а именно: режим работы в графическом окружении с фиксированной частотой кадров и интерактивный режим, в котором графическое окружение обновляется в ходе обработки событий. В обоих случаях пользовательские события отслеживаются и могут быть обработаны либо с помощью их собственных обработчиков, либо путем установки постоянных значений глобальных переменных напрямую в функции draw для определенных событий.

Processing.js является родственным проектом для проекта Processing, спроектированным с целью его переноса в веб-пространство без необходимости использования виртуальной машины Java или плагинов. Его развитие началось с попытки установления John Resig того, может ли язык Processing быть портирован для использования в веб-пространстве путем работы с новым на тот момент элементом <canvas> из состава HTML5 в роли графического контекста при использовании прототипа библиотеки, представленного в 2008 году. Разработанная с мыслью о том, что "код должен просто работать", библиотека Processing.js совершенствовалась в течение долгих лет с целью предоставления возможности создания визуализаций данных, цифровых произведений искусства, интерактивных анимаций, обучающих графиков, видеоигр и других работ с использованием веб-стандартов без каких-либо плагинов. Вы можете разрабатывать код на языке программирования Processing, используя либо Processing IDE, либо ваш любимый текстовый редактор, интегрировать его в веб-страницу, используя элемент <canvas>, после чего библиотека Processing.js выполнит остальные шаги, выводя необходимые графические данные с использованием элемента <canvas> и позволяя пользователям взаимодействовать с графическими данными таким же образом, каким они могли бы взаимодействовать с обычным обособленным Processing-приложением.


Далее: Как это работает?