Processing:Справочник языка Processing/createShape(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Нет описания правки
Строка 4: Строка 4:
{{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: Строка 10:
==Обозначение==
==Обозначение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
createShape()
createShape()
</syntaxhighlight>
</syntaxhighlight>
Строка 26: Строка 26:
==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
createShape()
createShape()
createShape(type)
createShape(type)
Строка 34: Строка 34:
==Параметры==
==Параметры==


<syntaxhighlight lang="c" enclose="div">
<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: Строка 41:
==Возвращаемое значение==
==Возвращаемое значение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
Объект PShape
Объект PShape
</syntaxhighlight>
</syntaxhighlight>
Строка 49: Строка 49:
===№1===
===№1===


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
PShape square;  // объект PShape  
PShape square;  // объект PShape  


Строка 68: Строка 68:
===№2===
===№2===


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
PShape s;  // объект PShape
PShape s;  // объект PShape


Строка 93: Строка 93:
===№3===
===№3===


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
PShape s;
PShape s;


Строка 117: Строка 117:
===№4===
===№4===


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
PShape alien, head, body;
PShape alien, head, body;


Строка 166: Строка 166:
|Высота логотипа издателя для schemaNewsArticle=45
|Высота логотипа издателя для schemaNewsArticle=45
}}
}}
{{Навигационная таблица/Справочник языка Processing}}
{{Навигационная таблица/Портал/Processing}}

Версия от 12:08, 20 мая 2023


Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.



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);  //  рисуем группу
}

См.также

Внешние ссылки