Processing

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Processing
Processing Logo Clipped.svg
Класс языка:

объектно-ориентированный

Тип исполнения:

компилируемый

Появился в:

2001-08-27; 5479 дней тому назад

Автор:

Кэйси Риз
Бенжамин Фрай

Расширение файлов:

.pde

Выпуск:

3.0 (2015-09-30; 332 дня тому назад)

Система типов:

статическая

Испытал влияние:

Design By Numbers, Java, OpenGL, C

Повлиял на:

Processing.js, iProcessing, Arduino

Лицензия:

GPL, LGPL

Сайт:

processing.org

ОС:

Windows, Linux, Mac OS, 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[править | править вики-текст]

 1 //Hello mouse.
 2 void setup() {
 3        size(400, 400);
 4        stroke(255);
 5        background(192, 64, 0);
 6 }
 7 
 8 void draw() {
 9        line(150, 25, mouseX, mouseY);
10        text('Hello World',mouseX, mouseY)
11 }

Карта президентских выборов США[править | править вики-текст]

Результат выполнения нижеприведенного кода
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[править | править вики-текст]

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Литература[править | править вики-текст]

Ссылки[править | править вики-текст]