/** * Bounce. * * Когда фигура ударяется о край окна, она меняет своё направление. * * Updated 1 September 2002 */ import processing.serial.*; String portname = "/dev/tty.usbserial-A4001qa8"; // или "COM8" Serial port; // Создать объект класса Serial int size = 60; // Ширина фигуры float xpos, ypos; // Начальная позиция фигуры float xspeed = 3.9; // Скорость фигуры float yspeed = 3.1; // Скорость фигуры int xdirection = 1; // Влево или вправо int ydirection = 1; // Вверх или вниз void setup() { size(400, 400); colorMode(HSB, 255); noStroke(); frameRate(30); ellipseMode(CENTER); // рисовать из центра smooth(); background(102); // Установить изначальную позицию фигуры xpos = width/2; ypos = height/2; // Открыть порт, к которому подключена плата, и использовать ту же самую скорость (19200 бод) port = new Serial(this, portname, 19200); } void draw() { if (port.available() > 0) { // Если есть данные, size = port.read(); // прочитать их и сохранить их как новый размер } // Обновить местоположение фигуры xpos = xpos + ( xspeed * xdirection ); ypos = ypos + ( yspeed * ydirection ); // Проверка, перешла ли фигура границы экрана // Если да, то поменять направление умножением на -1 int halfsize = size/2; // потому что мы рисуем из центра окружности if (xpos + halfsize > width || xpos - halfsize < 0) { xdirection *= -1; } if (ypos + halfsize > height || ypos - halfsize < 0) { ydirection *= -1; } // Нарисовать фигуру background(102); // закомментируйте это, чтобы увидеть весёлые глюки //fill(size,255,255); // мы в режиме HSB, так что первая величина - цвет ellipse(xpos, ypos, size, size); }