Processing:Справочник языка Processing/beginShape()

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску


Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Cat poo.png Черновик


beginShape() [1]

Обозначение

beginShape()

Описание

Методы beginShape() и endShape() позволяют создавать более сложные фигуры, чем методы вроде rect() и ellipse(). Метод beginShape() начинает записывать вершины фигуры, а endShape() – заканчивает. Параметр kind задает, какую фигуру необходимо создать при помощи заданных вершин. Если никакого параметра задано не будет, фигура может принять форму любого нестандартного полигона. В параметре kind можно указать POINTS, LINES, TRIANGLES, TRIANGLE_FAN, TRIANGLE_STRIP, QUADS и QUAD_STRIP. После вызова метода beginShape() должна следовать серия команд vertex(). Чтобы закончить рисование фигуры, впишите метод endShape(). Метод vertex() с двумя параметрами указывает позицию вершины в 2D-пространстве, а метод vertex() с тремя параметрами – позицию вершины в 3D-пространстве. Цвет контура каждой фигуры задается с помощью метода stroke(), а цвет заливки – с помощью метода fill().

Трансформации вроде translate(), rotate() и scale() внутри beginShape() и endShape() работать не будут. Кроме того, внутри них нельзя использовать методы для создания других фигур вроде ellipse() и rect().

Визуализаторы P2D и P3D позволяют менять значения в методах stroke() и fill() для каждой вершины, но в визуализаторе, который стоит по умолчанию, это работать не будет. Менять значения у методов вроде strokeWeight(), strokeCap() и strokeJoin() внутри пары beginShape() / endShape() нельзя с любым визуализатором.

Синтаксис

beginShape()
beginShape(kind)

Параметры

kind  определяет тип фигуры, создаваемой с помощью заданных вершин. Возможные значения  POINTS, LINES, TRIANGLES, TRIANGLE_FAN, TRIANGLE_STRIP, QUADS и QUAD_STRIP. Тип данных  int

Возвращаемое значение

void

Пример

№1

Processing beginShape 0.png


beginShape();
vertex(30, 20);
vertex(85, 20);
vertex(85, 75);
vertex(30, 75);
endShape(CLOSE);

№2

Processing beginShape 1.png


beginShape(POINTS);
vertex(30, 20);
vertex(85, 20);
vertex(85, 75);
vertex(30, 75);
endShape();

№3

Processing beginShape 2.png


beginShape(LINES);
vertex(30, 20);
vertex(85, 20);
vertex(85, 75);
vertex(30, 75);
endShape();

№4

Processing beginShape 3.png


noFill();
beginShape();
vertex(30, 20);
vertex(85, 20);
vertex(85, 75);
vertex(30, 75);
endShape();

№5

Processing beginShape 4.png


noFill();
beginShape();
vertex(30, 20);
vertex(85, 20);
vertex(85, 75);
vertex(30, 75);
endShape(CLOSE);

№6

Processing beginShape 5.png


beginShape(TRIANGLES);
vertex(30, 75);
vertex(40, 20);
vertex(50, 75);
vertex(60, 20);
vertex(70, 75);
vertex(80, 20);
endShape();

№7

Processing beginShape 6.png


beginShape(TRIANGLE_STRIP);
vertex(30, 75);
vertex(40, 20);
vertex(50, 75);
vertex(60, 20);
vertex(70, 75);
vertex(80, 20);
vertex(90, 75);
endShape();

№8

Processing beginShape 7.png


beginShape(TRIANGLE_FAN);
vertex(57.5, 50);
vertex(57.5, 15); 
vertex(92, 50); 
vertex(57.5, 85); 
vertex(22, 50); 
vertex(57.5, 15); 
endShape();

№9

Processing beginShape 8.png


beginShape(QUADS);
vertex(30, 20);
vertex(30, 75);
vertex(50, 75);
vertex(50, 20);
vertex(65, 20);
vertex(65, 75);
vertex(85, 75);
vertex(85, 20);
endShape();

№10

Processing beginShape 9.png


beginShape(QUAD_STRIP); 
vertex(30, 20); 
vertex(30, 75); 
vertex(50, 20);
vertex(50, 75);
vertex(65, 20); 
vertex(65, 75); 
vertex(85, 20);
vertex(85, 75); 
endShape();

№11

Processing beginShape 10.png


beginShape();
vertex(20, 20);
vertex(40, 20);
vertex(40, 40);
vertex(60, 40);
vertex(60, 60);
vertex(20, 60);
endShape(CLOSE);

См.также

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