Processing:Справочник языка Processing/createShape()
Содержание | Среда разработки Processing | Справочник языка Processing | Библиотеки | Примеры | Режимы программирования |
createShape() [1]
Обозначение
createShape()
Описание
Используется для того, чтобы задать новую фигуру. Когда фигура будет задана, ее можно будет нарисовать с помощью метода shape(). Метод createShape() можно использовать, во-первых, для того, чтобы задать примитивные фигуры. В первом параметре можно использовать следующие значения – ELLIPSE, RECT, ARC, TRIANGLE, SPHERE, BOX, QUAD или LINE. Параметры для каждой из этих фигур такие же, как и у соответствующих методов – ellipse(), rect(), arc(), triangle(), sphere(), box(), quad() и line(). О том, как это работает, смотрите в примере 1 ниже.
Кроме того, при помощи метода createShape() можно задать и уникальные фигуры. В этом случае параметры не нужны, но понадобятся методы beginShape() и endShape(), с помощью которых можно напрямую задать геометрию и атрибуты будущей фигуры. Более подробно смотрите в примере 2 ниже, а также в статье для метода beginShape(), где подробно объясняется, что можно сделать с ее помощью.
Метод createShape() также можно использовать для создания сложной фигуры, состоящей из других фигур. Это называется «группой», и для ее создания в первом параметре метода нужно указать GROUP. Более подробно смотрите в примере 4 ниже.
После использования createShape() можно задать характеристики цвета и контура фигуры – при помощи методов setFill() и setStroke(), как показано в примерах выше. Полный список методов и полей для класса PShape можно найти тут.
Синтаксис
createShape()
createShape(type)
createShape(kind, p)
Параметры
kind – тип фигуры. Возможные варианты – POINT, LINE, TRIANGLE, QUAD, RECT, ELLIPSE, ARC, BOX, SPHERE
p – параметры, соответствующие типу фигуры. Тип данных – float[]
Возвращаемое значение
Объект PShape
Пример
№1
PShape square; // объект PShape
void setup() {
size(100, 100);
// создание объекта PShape в виде квадрата;
// числовые аргументы такие же, как и для метода rect():
square = createShape(RECT, 0, 0, 50, 50);
square.setFill(color(0, 0, 255));
square.setStroke(false);
}
void draw() {
shape(square, 25, 25);
}
№2
PShape s; // объект PShape
void setup() {
size(100, 100);
// создание уникального объекта PShape в виде квадрата
// путем указания нескольких вершин:
s = createShape();
s.beginShape();
s.fill(0, 0, 255);
s.noStroke();
s.vertex(0, 0);
s.vertex(0, 50);
s.vertex(50, 50);
s.vertex(50, 0);
s.endShape(CLOSE);
}
void draw() {
shape(s, 25, 25);
}
№3
PShape s;
void setup() {
size(100, 100, P2D);
s = createShape();
s.beginShape(TRIANGLE_STRIP);
s.vertex(30, 75);
s.vertex(40, 20);
s.vertex(50, 75);
s.vertex(60, 20);
s.vertex(70, 75);
s.vertex(80, 20);
s.vertex(90, 75);
s.endShape();
}
void draw() {
shape(s, 0, 0);
}
№4
PShape alien, head, body;
void setup() {
size(100, 100);
// создание группы фигур:
alien = createShape(GROUP);
// делаем две фигуры:
ellipseMode(CORNER);
head = createShape(ELLIPSE, -25, 0, 50, 50);
head.setFill(color(255));
body = createShape(RECT, -25, 45, 50, 40);
body.setFill(color(0));
// добавляем две "дочерних" фигуры к родительской группе:
alien.addChild(body);
alien.addChild(head);
}
void draw() {
background(204);
translate(50, 15);
shape(alien); // рисуем группу
}
См.также
Внешние ссылки
Примеры на Processing | |
---|---|
Основы |
|
Продвинутые графические эффекты |
|
Примеры из сторонних библиотек |