| Пример 1. Построение графика функции sin()
Вариант 1.
float t; // объявляем переменную
void setup () {
background (20);
size (500,500);
frameRate (40);
}
void draw () {
stroke (255); // задаем цвет точки
strokeWeight (5); // задаем размер точки точки
/ * переносим начало системы координат в точку с координатами (width / 2, height / 2) есть функция translate () вместо точки (0,0)
записывает координаты (0, height / 2) * /
translate (0, height / 2);
/ * значение координат точки х и у определяются значением переменной t * /
point (t, sin (t / 10) * 50);
t = t + 2; // от кадра к следующему кадру увеличиваем значение переменной на 1
if (keyPressed == true) // если любая клавиша нажата
{
saveFrame ( "images / urok - ####. png"); // выполнить запись кадра (фрейма) в папку images
}
}
// переменной х возвращается значение переменной t
float x (float t)
{return t;}
// переменной у возвращается значение выражения sin (t / 10) * 50
float y (float t)
{return sin (t / 10) * 50; }
|
Вариант 2.
void setup () {
size (500, 500);
smooth ();
background(0);
}
float counter = 0;
void draw () {
noStroke ();
fill (10, 50);
/* Координата по оси Y изменяется по закону синуса*/
float ny = sin(counter)*100+200;
float nx = counter *10;
stroke (250);
strokeWeight (4);
point(nx,ny);
counter = counter + 0.1;
if(nx > width){
counter = 0;
}
}
void keyPressed () {
if(key=='s') saveFrame("myProcessing.png");
}
|
 |
 |
источник: Игорь Криулин - Полуостров Бинария
Пример 2. Пошаговая разработка проекта
этап 1. Рисуем шарик
size(640, 480);
smooth();
noStroke();// выключаем абрис (обводку)
background(0, 0, 0);
fill(255, 155, 0);
ellipse(320, 240, 150, 150);
|

|
этап 2. Видоизменяем шарик
float r = 50, x, y;
size(640, 480); smooth(); noStroke();
x = width / 2; y = height / 2;
background(0, 0, 0);
fill(255, 155, 0); ellipse(x, y, r * 2, r * 2);
fill(235, 115, 0); ellipse(x, y, r * 1.5, r * 1.5);
|
 |

этап3. Шарик, движение
/*глобальные переменные, радиус шарика – r, позиция в экране – x и y, dx и dy – так называемые приращения позиции*/
float r = 50, x, y, dx, dy;
void setup()
{
size(640, 480); smooth(); noStroke(); frameRate(25);
x = width / 2; y = height / 2; dx = -5; dy = 5;
}
void draw()
{
background(0, 0, 0);
x += dx; y += dy;
/*dx и dy – меняют свой знак на противоположный, каждый раз когда шарик выпадает за границу по одной из осей: -5 превращается в 5 и наоборот*/
if ((x > (width - r)) || (x < r)) dx = - dx;
if ((y > (height - r)) || (y < r)) dy = - dy;
fill(255, 155, 0); ellipse(x, y, r * 2, r * 2);
fill(235, 115, 0); ellipse(x, y, r * 1.5, r * 1.5);
}
|

ellipse(x,y,width,height) рисует эллипс в точке с координатами (х,у) с указанными шириной и высотой
|
этап 4. Два шарика, функция пользователя
float r1 = 50, x1, y1, dx1, dy1;
float r2 = 25, x2, y2, dx2, dy2;
void setup()
{
size(640, 480); smooth(); noStroke(); frameRate(25);
x1 = random(r1, width - r1); y1 = random(r1, height - r1); dx1 = -5; dy1 = 5;
x2 = random(r2, width - r2); y2 = random(r2, height - r2); dx2 = 5; dy2 = -5;
}
void draw()
{
background(0, 0, 0);
x1 += dx1; y1 += dy1;
if ((x1 > (width - r1)) || (x1 < r1)) dx1 = - dx1;
if ((y1 > (height - r1)) || (y1 < r1)) dy1 = - dy1;
drawCircle(x1, y1, r1, color(255, 155, 0));
x2 += dx2; y2 += dy2;
if ((x2 > (width - r2)) || (x2 < r2)) dx2 = - dx2;
if ((y2 > (height - r2)) || (y2 < r2)) dy2 = - dy2;
drawCircle(x2, y2, r2, color(175, 255, 0));
}
void drawCircle(float x, float y, float r, color c)
{
fill(c); ellipse(x, y, r * 2, r * 2);
fill(red(c) - 25, green(c) - 25, 0); ellipse(x, y, r * 1.5, r * 1.5);
}
|
 |
Пример 3. Массивы (тема: массивы)
int count = 100;
/*в программе для каждого шарика нужно несколько параметров: x, y, r, dx, dy и c*/
float[] r, x, y, dx, dy;
color[] c;
void define(int i)
{
r[i] = random(20, 55);
x[i] = random(r[i], width - r[i]); y[i] = random(r[i], height - r[i]);
dx[i] = random(3, 5) * zrandom(); dy[i] = random(3, 5) * zrandom();
c[i] = color(irandom(55, 255), irandom(50, 150), 0);
}
void drawing(int i)
{
x[i] += dx[i]; y[i] += dy[i];
if ((x[i] > (width - r[i])) || (x[i] < r[i])) dx[i] = - dx[i];
if ((y[i] > (height - r[i])) || (y[i] < r[i])) dy[i] = - dy[i];
circle(x[i], y[i], r[i], c[i]);
circle(x[i], y[i], r[i] * 0.75, color(red(c[i]) - 15, green(c[i]) - 20, 0));
}
// обязательные функции
void setup()
{
size(640, 480); smooth(); noStroke(); frameRate(25);
x = new float[count]; y = new float[count]; r = new float[count];
dx = new float[count]; dy = new float[count]; c = new color[count];
for (int i = 0; i < count; i++) define(i);
}
void draw()
{
background(0, 0, 0);
for (int i = 0; i < count; i++) drawing(i);
}
// вспомогательные функции
int irandom (int m) { return (int)random(m + 1.0); }
int irandom (int mn, int mx) { return (int)random(mn, mx + 1.0); }
int zrandom () { return 1 - 2 * irandom(1); }
void circle(float x, float y, float r, color c) { fill(c); ellipse(x, y, r * 2, r * 2); }
|
 |
| |