Processing:Справочник языка Processing/createShape(): различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Myagkij (обсуждение | вклад) Нет описания правки |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 1: | Строка 1: | ||
{{Processing панель перехода}} | {{Processing панель перехода}} | ||
{{Перевод от Сubewriter}} | {{Перевод от Сubewriter}} | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
= createShape() <ref>[https://processing.org/reference/createShape_.html processing.org - createShape()]</ref>= | = createShape() <ref>[https://processing.org/reference/createShape_.html processing.org - createShape()]</ref>= | ||
Строка 10: | Строка 7: | ||
==Обозначение== | ==Обозначение== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
createShape() | createShape() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 26: | Строка 23: | ||
==Синтаксис== | ==Синтаксис== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
createShape() | createShape() | ||
createShape(type) | createShape(type) | ||
Строка 34: | Строка 31: | ||
==Параметры== | ==Параметры== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
kind – тип фигуры. Возможные варианты – POINT, LINE, TRIANGLE, QUAD, RECT, ELLIPSE, ARC, BOX, SPHERE | kind – тип фигуры. Возможные варианты – POINT, LINE, TRIANGLE, QUAD, RECT, ELLIPSE, ARC, BOX, SPHERE | ||
p – параметры, соответствующие типу фигуры. Тип данных – float[] | p – параметры, соответствующие типу фигуры. Тип данных – float[] | ||
Строка 41: | Строка 38: | ||
==Возвращаемое значение== | ==Возвращаемое значение== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
Объект PShape | Объект PShape | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 49: | Строка 46: | ||
===№1=== | ===№1=== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
PShape square; // объект PShape | PShape square; // объект PShape | ||
Строка 68: | Строка 65: | ||
===№2=== | ===№2=== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
PShape s; // объект PShape | PShape s; // объект PShape | ||
Строка 93: | Строка 90: | ||
===№3=== | ===№3=== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
PShape s; | PShape s; | ||
Строка 117: | Строка 114: | ||
===№4=== | ===№4=== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
PShape alien, head, body; | PShape alien, head, body; | ||
Строка 150: | Строка 147: | ||
<references /> | <references /> | ||
{{Навигационная таблица/Портал/Processing}} | |||
{{Навигационная таблица/ |
Текущая версия от 15:21, 13 сентября 2023
Содержание | Среда разработки 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 | |
---|---|
Основы |
|
Продвинутые графические эффекты |
|
Примеры из сторонних библиотек |