Processing:Справочник языка Processing/createGraphics()
Содержание | Среда разработки Processing | Справочник языка Processing | Библиотеки | Примеры | Режимы программирования |
createGraphics() [1]
Обозначение
createGraphics()
Описание
Создает и возвращает новый объект PGraphics. Используйте этот класс, если вам необходимо нарисовать что-то в графический буфер, находящийся за пределами экрана. Первые два параметра задают ширину и высоту объекта (в пикселях). В третьем (опциональном) параметре задается визуализатор – P2D, P3D или PDF. Если третий параметр не задан, метод воспользуется визуализатором по умолчанию. Визуализатору PDF также требуется параметр filename.
Важно, чтобы визуализатор в createGraphics() соответствовал главному визуализатору, заданному в size(). К примеру, если в size() задан визуализатор P2D или P3D, то в createGraphics() можно использовать только их. В отличие от Processing 1.0, визуализаторы P2D и P3D используют для рисования OpenGL, а когда вы используете визуализатор OpenGL, необходимо, чтобы главная поверхность изображения тоже была на базе OpenGL. Если в методе size() в качестве визуализатора используются P2D или P3D, то их можно использовать и в createGraphics(). Если в size() используется визуализатор по умолчанию, то в createGraphics() может быть использован только визуализатор по умолчанию или PDF.
Важно помнить, что все рисующие функции должны вызываться внутри блока из методов beginDraw() и endDraw(). Это касается и всех методов, влияющих на изображение – вроде smooth() или colorMode().
Метод createGraphics() почти во всех случаях нельзя использовать внутри draw(), т.к. это расходует лишнюю память и время, используемые на рисование графики. Одноразовое или случайное использование createGraphics() внутри draw() – это приемлемо, но код, который вызывает createGraphics() 60 раз в секунду быстро израсходует память, из-за чего ваш скетч попросту зависнет.
В отличие от главной поверхности изображения, которая полностью непрозрачна, изображения, создаваемые при помощи createGraphics(), могут быть прозрачными. Это значит, что вы можете не только нарисовать внутри них какую-то графику, но и задать альфа-канал. Информация о прозрачности будет сохранена и при записи графического объекта в формат PNG или TGA при помощи метода save().
Синтаксис
createGraphics(w, h)
createGraphics(w, h, renderer)
createGraphics(w, h, renderer, filename)
Параметры
w – ширина изображения (в пикселях). Тип данных – int
h – высота изображения (в пикселях). Тип данных – int
renderer – используемый визуализатор (P2D, P3D или PDF). Тип данных – String
filename – название файла (может быть абсолютным или относительным путем). Тип данных – String
Возвращаемое значение
Тип данных – объект PGraphics.
Пример
PGraphics pg;
void setup() {
size(200, 200);
pg = createGraphics(100, 100);
}
void draw() {
pg.beginDraw();
pg.background(102);
pg.stroke(255);
pg.line(pg.width*0.5, pg.height*0.5, mouseX, mouseY);
pg.endDraw();
image(pg, 50, 50);
}
См.также
Внешние ссылки
Примеры на Processing | |
---|---|
Основы |
|
Продвинутые графические эффекты |
|
Примеры из сторонних библиотек |