На хабре поднималась тема об этой программе, но раскрыта тема была скудно. Я попытаюсь показать внутреннее устройство программы, а также в конце обзора будет бонус :) Под катом много картинок, но не очень тяжелых.
С сайта программы возьмем ее описание «Nodebox программа, которая позволяет создавать 2D визуализацию (статичную, анимированную и интерактивную) с помощью языка программирования Python и, в последствии, экспортировать ее в форматы PDF и QuickTime». Программа абсолютна бесплатна, отлично документирована. Есть множество уроков «от простого к сложному». Единственный минус — она только на Mac. Давайте её уже скачаем и посмотрим, чем она может удивить нас :)
Открываем смотрим интерфейс. Как и ожидалось чистый минимал, как в Processing.
Конечно, весь смак программы в языке, код в разы будет меньше чем в том же процессинге со своей явой. К примеру, рисуем круг:
size (100, 100) #Задаем размеры фона
fill(0.2) #Делаем заливку кругу
oval(10, 20, 40, 40) #Круг
А благодря подключаемым плагинам, мы можем реально разогнать его. Хотелось бы привести самые популярные плагины.
SVG
Из названия, я думаю, сразу понятно становиться, что плагин позволяет подгружать в код SVG-файлы. На уровне кода можно менять цвета, прозрачность, работать с кривыми и точками. Хочу на примере того как я рисовал флаер, показать как он работает. Была задача нарисовать флаер для вечеринки с тематикой Лондона. Идем в гугл ищем картинки, которые ассоциируются с Лондоном. Все это дело кидаем в иллюстратор, переводим в вектор и сохраняем в SVG.
Далее мне надо было простой рандомный разброс по «холсту». К сожалению, исходников тех не сохранилось и поэтому я покажу простой код, на основе примеров.
Далее наигравшись с рандомом и выбрав нужный вариант, экспортируем это в нужный нам формат. Nodebox не одним PDF един :)
Я выбираю EPS, кидаю в люстру и уже там разгрупировав могучую кучку объектов могу рулить отдельными объектами. В итоге проведя со всем изображениями такие манипуляции я получил вот такой флаер.
Вообщем очень нужный и важный плагин, заинтересовались? Прошу сюда.
Core Image
Самый мощный плагин, я считаю. Так сказать Adobe® Photoshop®™ (вынужден его так называть в свете последних событий :) командной строкой. Плагин позволяет производить различные манипуляции с изображениями, почти все фильтры фотожопа можно реализовать с помощью этого плагина. Сие чудо работает через Core Image, а значит на аппаратном ускорении. Плагин позволяет создавать слои, а если сохранить в TIFF соответсвенно сохранится иерархия. Может регулировать яркость, контраст, насыщение. Работает со смешиванием в слоях. Пример применения фильтра Triangle Tile (всего 2 строки!):
l = c.append("lily.tif")
l.filter("triangletile", dx=-30, dy=-30, width=40)
Очень много чего умеет, тут можно скачать и почитать подробней.
Supershape
Плагин, позволяющий, реализовать формулы суперформ Johan Gielis. Можно к примеру написать хабр вот так:
Или санимировать суперформу:
Вообщем там куча плагинов и они еще добавляются. Жаль программа не получила широкого резонанса, коммюнити слабое. Приведу пример пары иллюстраций созданных в Nodebox, все остальное тут:
Вот как-то так. А теперь бонус! :)
Nodebox 2
Программа пока находится в бета-тестировании. В программе изменилась сама модель написания. Теперь это работа с модулями. Пока не ясно, что именно будет реализованно в программе. Самый приятный момент, что программа теперь идет на винде и чуть-чуть на линуксе :) Давайте на примере урока попробуем понять как теперь с ней работать.
При создании проекта мы видим чистый интерфейс
Окна распределяются следующим образом
Правой кнопкой щелкаем на поле Network
Выбираем из меню New node
Ищем Rect в списке и добавляем его. Теперь он на сцене, мы можем менять его параметры
Следующим шагом добавляем модуль Wiggle, и соединяем Rect c Wiggle.
Теперь мы можем наблюдать следующее (смотря кто как эксперементирует)
Дальше добавляем Place, это как бы рендер то что на выходе получиться. При присоединение к этому модулю, он спрашивает вас в качестве чего подцепить к нему, надо выбирать Shape ибо мы добавляем фигуру.
Добавляем модуль Grid, когда соединяем, выбираем Template, как бы шаблон для рендера.
И в итоге на выходе имеем PROFIT!
Проект опен-сорс, проект интересный, коммьюнити по-тихому собирается. Интересно будет увидеть мастистых программистов на питоне с их экспериментами. Совсем запыхался и не дал ссылку на скачивание, вот! Спасибо LLIAMAH, что напомнил.
ЗЫ. Я знаю, что у меня проблемы с русским, что я совершаю орфографические, пунктационные и лексические ошибки. Но очень прошу вас не указывайте на ошибки в комментариях, пишите в личку, буду править, а то как начнется… В итоге тред будет учителей русского языка :)