Danilov Andrew V.. Общие сведения. Персональная страница сотрудника КФУ. Казанский (Приволжский) федеральный университет.
Danilov Andrew V.

2. Первые шаги к осмысленному программированию. Функции в p5.js

0. Введение

Итак, из прошлых разделов вы должны были научиться устанавливать систему программирования и азам работы в редакторе кода. В данном уроке мы начнем изучать т.н. синтаксис языка - иначе говоря, основы и правила описания команд в языке программирования p5.js.

Язык "заточен" для работы с графикой, из-за этого, множество команд и примеров будут связаны с построением фигур, рисунков на Интернет-страницах.

1. Минимальная программа.

Разные языки программирования имеют разное устройство команд и операторов. В некоторых можно прямо в пустой строке ввести команду, и она успешно выполнится.

Однако p5.js и его прямой предок - JavaScript - имеют несколько усложненную струкутру.

Дело в том, что любая команда в p5.js должна представляться как функция - то есть некая сущность, имеющая имя, и которая включает в себя набор других команд (которые тоже могут выступать в качестве функций). Звучит сложно, но на деле все легче.

Тут важно сказать, что самая распрастраненная программа будет состоять из двух функций:

Получается, даже программа, которая ничего не будет делать, будет содержать эти две функции. Выглядит это так:

function setup() {

}

function draw() {

}

Знакомые строки, не правда ли? Действительно, когда мы начинали знакомство с p5.js, мы работали с пустым примером, который содержал эти строки.

Функция setup() - это и есть функция инициализации. Внутри фигурных скобок пишутся все команды и настройки.

Соответсвенно, функция draw() - функция рисования, где желательно размещать команды, связанные с рисованием и движением. Как и в setup(), так и в draw(), так и в любой другой функции в p5.js: команды пишутся внутри фигурных скобок.

Начнем изучение команд рисования в p5.js.

2. Команды и функции p5.js

2.1 Функция createCanvas() 

Мы изучаем рисование, из-за этого первую функцию, которую необходимо изучить, это создание канвы.

Все объекты дли отрисовки должны размещаться в строго отведенной для этого области. Данная область называется канвой (синонимы: полотно, рабочая область). Поэтому, прежде чем рисовать, нам надо создать канву с помощью функции createCanvas() .

Для этого в функцию инициализации пропишем команду createCanvas() с некоторыми уточнениями:

function setup() {

createCanvas(400,600)

}

Все просто: внутри функции setup() мы ввели одну строку createCanvas(400,600). Данная строка "диктует" компьютеру создать прямоугольную канву. Цифры 400 и 600 будут отвечать за ширину и высоту канвы, которая измеряется в пикселях.

2.2 Первая геометрическая фигура и о системе координат в p5.js

Канва создана - пора приступать к рисованию.

Существует множество команд для отрисовки векторных графических примитовов. Всю отрисовку рекомендуется размещать внутри функции draw()

Начнем, пожалуй, с прямоугольника. Нарисуем прямоугольник. Для этого в p5.js существует функция rect():

rect(30,40,50,70)

Вы заметили, что команда имеет несколько чисел внутри скобок. Это параметры функции, которые определяют поведение в программе. Изучим их.

В общем виде этот набор параметров записывают следующим образом:

rect(x,y,w,h)

И вот тут возникает интересный момент с системой координат. С одной стороны, все логично и числа 30 и 40 отвечают за x и y-координаты соответсвенно. С другой стороны, есть нюансы:

Таким образом, если мы запишем и выполним код, и откроем браузер, мы увидим следующее:

Проанализируем и разметим получившуюся отрисовку:

Попробуйте сами разместить прямоугольник и укажите собственные параметры.

2.3 Отрисовка других геометрических фигур

Теперь мы умеем рисовать в p5.js. Изучим другие фигуры и прокомментируем набор параметров для каждой из фигур.

Начнем с точки:

point(x,y)

Наборы параметров, необходимых для описания точки, минимальны - это лишь ее координаты.

Так рисуется линия:

line(x1,y2,x2,y2)

В данном случае, линия представляет собой соединение двух точек, и в параметрах предсказуемо описаны координаты этих двух точек.

Отрисовка треугольника построена по этому же подходу, и треугольник представлен как набор трех точек и линий между ними:

triangle(x1,y2,x2,y2,x3,y3)

Нарисуем эллипс:

ellipse(x,y,w,[h])

Всё очень похоже на прямоугольник, но, в отличие от прямоугольника, координаты x и y служат для определения радиуса эллипса. Заметьте - параметр высоты (h) указан в квадратных скобках. Это означает, что вводить его необязательно. Иначе говоря, если не указать высоту в параметрах, компьютер приравняет высоту к ширине эллипса. Таким образом, мы получим идеальный круг.

3. Где брать справочный материал?

Естественно, что все функции мы здесь описывать не будем. Все описание, более емкое и исчерпывающее, представлено на сайте языка p5.js в разделе References:

p5js.org/reference

Также рекомендуется к просмотру ролик Дэниела Шиффмана:

 

 

Work address: 2 Tatarstan Str., Kazan, Building #33
Office number: 327
E-mail: tukai@yandex.ru
Google scholar: https://scholar.google.com/citations?hl=en&user=bzC4HHoAAAAJ
ResearchGate: https://www.researchgate.net/profile/Andrew_Danilov
Experience:
 11 years 3 months   from 02.09.2013
Scientific and pedagogical experience:
 11 years 3 months   from 02.09.2013
General experience:
 13 years 8 months   from 05.07.2010
Experience in KFU:
 5 years 6 months   from 02.09.2013