Processing
Processing | |
---|---|
Класс языка | объектно-ориентированный |
Тип исполнения | компилируемый |
Появился в | 2001 |
Автор |
Кэйси Риз Бенжамин Фрай |
Расширение файлов | .pde |
Выпуск | 4.0b1 (09.08.2021) |
Система типов | статическая |
Испытал влияние | Design By Numbers, Java, OpenGL, C |
Повлиял на | Processing.js, iProcessing, Arduino |
Лицензия | GPL, LGPL |
Сайт | processing.org |
ОС | Linux, Mac OS, Windows, Android |
Processing — открытый язык программирования, основанный на Java. Представляет собой лёгкий и быстрый инструментарий для людей, которые хотят программировать изображения, анимацию и интерфейсы.
Используется студентами, художниками, дизайнерами, исследователями и любителями, для изучения, прототипирования и производства. Он создан для изучения основ компьютерного программирования в визуальном контексте и служит альбомным программным обеспечением (имеется в виду то, что каждый *.pde файл визуальной оболочки Processing’а представляет собой отдельное изображение или анимацию, и т. д.) и профессиональным производственным инструментом.
Processing — это открытый проект инициированный Бенжамином Фраем и Кэйси Ризом. Он родился из идей, изученных в The Aesthetics and Computation Group в MIT Media Lab.
Скетчинг в Processing
Программа на Processing называется скетч (от англ. sketch — эскиз). Идея состоит в том, чтобы программирование в Java-стиле было похоже на скриптирование, и взятии на вооружение процесса скриптирования для быстрого написания кода.
Возможности и особенности
Каждый скетч в Processing является классом, наследуемым от Java-класса PApplet
, который содержит в себе большинство возможностей языка Processing.
Перед выполнением скетча он преобразуется в код на языке Java для выполнения в среде Windows/Linux/MacOS/Android либо в Javascript-код для выполнения в браузере внутри Canvas[1].
При программировании на языке Processing все создаваемые классы являются внутренними классами основного. Это накладывает определённые ограничения при разработке.
Примеры
Hello World
void setup(){
size(200,200);
text("Hello World",70,100);
}
Карта президентских выборов США
PShape usa;
PShape state;
String [] Obama = { "HI", "RI", "CT", "MA", "ME", "NH", "VT", "NY", "NJ",
"FL", "NC", "OH", "IN", "IA", "CO", "NV", "PA", "DE", "MD", "MI",
"WA", "CA", "OR", "IL", "MN", "WI", "DC", "NM", "VA" };
String [] McCain = { "AK", "GA", "AL", "TN", "WV", "KY", "SC", "WY", "MT",
"ID", "TX", "AZ", "UT", "ND", "SD", "NE", "MS", "MO", "AR", "OK",
"KS", "LA" };
void setup() {
size(950, 600);
// The file Blank_US_Map.svg can be found at Wikimedia Commons
usa = loadShape("http://upload.wikimedia.org/wikipedia/commons/3/32/Blank_US_Map.svg");
smooth(); // Improves the drawing quality of the SVG
noLoop();
}
void draw() {
background(255);
// Draw the full map
shape(usa, 0, 0);
// Blue denotes states won by Obama
statesColoring(Obama , color(0, 0, 255));
// Red denotes states won by McCain
statesColoring(McCain, color(255, 0, 0));
// Save the map as image
saveFrame("map output.png");
}
void statesColoring(String[] states, int c){
for (int i = 0; i < states.length; ++i) {
PShape state = usa.getChild(states[i]);
// Disable the colors found in the SVG file
state.disableStyle();
// Set our own coloring
fill(c);
noStroke();
// Draw a single state
shape(state, 0, 0);
}
}
Связанные проекты
Design By Numbers
Wiring, Arduino и Fritzing
Processing породил еще один проект: Wiring, который использует IDE от Processing с набором библиотек, написанных на языке C++, для обучения художников программированию микроконтроллеров. Сейчас существует два отдельных аппаратных проекта: Wiring и Arduino, использующих среду разработки и язык Wiring. Fritzing — еще одна программная среда сходного типа, помогающая дизайнерам и художникам документировать их прототипы и пройти путь от прототипа до законченного продукта.
Mobile Processing
Processing.js
p5.js
iProcessing
Spde
Quil
Примеры использования
- На языке Processing написана часть среды разработки SDK отвечающего за эмуляцию WOWCube для персональных компьютеров (Open Source).
См. также
Примечания
- ↑ Overview \ Processing.org (недоступная ссылка). Дата обращения: 18 апреля 2013. Архивировано 20 апреля 2013 года.
Литература
- Bohnacker, Hartmut; Gross, Benedikt; Laub, Julia & Lazzeroni, Claudius (August 22, 2012), Generative Design: Visualize, Program, and Create with Processing (1st ed.), Princeton Architectural Press, с. 472, ISBN 978-1616890773
- Glassner, Andrew (August 9, 2010), Processing for Visual Artists: How to Create Expressive Images and Interactive Art (1st ed.), A K Peters/CRC Press, с. 955, ISBN 1-56881-716-9, <http://www.crcpress.com/ecommerce_product/product_detail.jsf?isbn=9781568817163>. Проверено 7 июня 2013. Архивная копия от 21 апреля 2011 на Wayback Machine
- Reas, Casey & Fry, Ben (June 17, 2010), Getting Started with Processing (1st ed.), Make, с. 208, ISBN 1-4493-7980-X
- Noble, Joshua (July 21, 2009), Programming Interactivity: A Designer's Guide to Processing, Arduino, and Openframeworks (1st ed.), O'Reilly Media, с. 736, ISBN 0-596-15414-3, <http://oreilly.com/catalog/9780596154141/>
- Terzidis, Kostas (May 11, 2009), Algorithms for Visual Design Using the Processing Language (1st ed.), Wiley, с. 384, ISBN 0-470-37548-5, <http://www.wiley.com/WileyCDA/WileyTitle/productCd-0470375485.html>
- Reas, Casey; Fry, Ben & Maeda, John (September 30, 2007), Processing: A Programming Handbook for Visual Designers and Artists (1st ed.), The MIT Press, с. 736, ISBN 0-262-18262-9, <http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=11251>. Проверено 7 июня 2013. Архивная копия от 17 апреля 2011 на Wayback Machine
- Fry, Ben (January 11, 2008), Visualizing Data (1st ed.), O'Reilly Media, с. 382, ISBN 0-596-51455-7, <http://oreilly.com/catalog/9780596514556/>
- Greenberg, Ira (May 28, 2007), Processing: Creative Coding and Computational Art (Foundation) (1st ed.), friends of ED, с. 840, ISBN 1-59059-617-X, <http://friendsofed.com/book.html?isbn=159059617X>. Проверено 7 июня 2013. Архивная копия от 27 января 2011 на Wayback Machine
- Shiffman, Daniel (August 19, 2008), Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction (1st ed.), Morgan Kaufmann, с. 450, ISBN 0-12-373602-1, <http://www.learningprocessing.com/>
- Faludi, Robert (January 4, 2011), Building Wireless Sensor Networks: with ZigBee, XBee, Arduino, and Processing (1st ed.), O'Reilly Media, с. 320, ISBN 978-0-596-80774-0, <http://faludi.com/bwsn> Архивная копия от 12 июня 2019 на Wayback Machine
- Vantomme, Jan (September 20, 2012), Processing 2, Creative Programming Cookbook (1st ed.), Packt Publishing, с. 291, ISBN 9781849517942, <http://www.packtpub.com/processing-2-creative-programming-cookbook/book> Архивная копия от 2 июля 2014 на Wayback Machine
- Pearson, Matt (June 1, 2011), Generative Art, A practical guide using Processing (1st ed.), Manning, с. 240, ISBN 9781935182627, <http://zenbullets.com/book.php> Архивная копия от 24 июня 2019 на Wayback Machine
Ссылки
- Официальный сайт (англ.)
- Знакомство с Processing 1.0 // Хабрахабр
- Полуостров Бинария. Программирование для детей и взрослых на Processing. Книга на русском языке isocode.ru