Главная » Processing » Использование математических функций Processing

0

Скорее всего, для написания скетчей Processing вам понадобится немного математики. Ничего страшного, если вы забыли кое-что из того, что изучали по математике в школе: язык Processing имеет ряд удобных функций, делающих эту работу за вас. Однако если вы захотите использовать эти функции для сложных задач вроде визуализации данных, вам придется отточить свои математические навыки.

Приступим

Мы собираемся написать небольшой скетч, в котором есть математические функции. Выходные данные скетча будут выводиться на консоль. Начните с создания нового скетча под названием math_functions.pde.

Как это делается

Ниже приведен код приложения, которое мы создаем. Он начинается с объявления нескольких переменных типа integer и float. Переменная numbers представляет собой массив чисел типа float, хранящихся в переменных, объявленных ранее. Для вывода на консоль результата функций abs(), ceil(), floor(), round(), sq(), sqrt(), min(), max() и dist() используется функция println().

int x = 177; int y = -189;

float a = 32.75; float b = -70.38;

float[] numbers = {a, b, x, y};

println("The absolute value of " + a + " is " + abs(a) ); println("The absolute value of " + b + " is " + abs(b) ); println("The absolute value of " + y + " is " + abs(y) );

println("The closest int value greater than (or equal to) " + x + " is " + ceil(x) );

println("The closest int value greater than (or equal to) " + a + " is " + ceil(a) );

println("The closest int value greater than (or equal to) " + b + " is " + ceil(b) );

println("The closest int value less than (or equal to) " + y + " is "

+ floor(y) );

println("The closest int value less than (or equal to) " + a + " is "

+ floor(a) );

println("The closest int value less than (or equal to) " + b + " is "

+ floor(b) );

println("The closest int value to " + a + " is " + round(a) ); println("The closest int value to " + b + " is " + round(b) ); println("The square number of " + x + " is " + sq(x) ); println("The square number of " + b + " is " + sq(b) ); println("The square root of " + x + " is " + sqrt(x) ); println("The square root of " + a + " is " + sqrt(a) ); println("The square root of " + b + " is " + sqrt(b) );

println("The smallest number in the list {" + a + "," + b + "," + x + "," + y + "} is " + min( numbers ) );

println("The largest number in the list {" + a + "," + b + "," + x + "," + y + "} is " + max( numbers ) );

println("The distance between (" + x + ", " + y + ") and (" + a + ", "

+ b + ") is " + dist(x, y, a, b ) );

Когда вы запустите скетч, вы увидите, что Processing выдает пустое серое окно 100 x 100 пикселей. Это стандартное окно, которое выдает Processing, если вы не применили в скетче функцию size(). Результат работы приложения показан на скриншоте:

Как это работает

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

f   abs() вычисляет модуль своего параметра. Результат всегда является положительным числом; так abs(-189) возвращает число 189.

f   ceil() возвращает ближайшее целое число, большее или равное своему паретру. Например, ceil(177) возвратит 177, ceil(-70.38) возвратит -70.

f   floor() возвращает ближайшее целое число, меньшее или равное своему параметру. floor(32.75) возвратит 32, floor(-70.38) возвратит -71.

f   round() возвращает ближайшее к своему параметру целое число.

round(32.75) возвратит число 33, round(-70.38) возвратит -70.

f   min() возвращает наименьшее число из списка параметров.

f   max() возвращает наибольшее число из списка параметров.

f   sq() возвращает квадрат числа. Это эквивалентно умножению числа на само это число. Результат этой функции – всегда положительное число.

f   sqrt() возвращает квадратный корень из числа. Входной параметр всегда должен быть положительным числом. sqrt(-70.38) возвращает NaN (Not a Number).

f dist() вычисляет расстояние между двумя точками. Первые два параметра – x и y координаты первой точки, третий и четвертый – x и y координаты второй точки. Функция dist() вычисляет расстояние по теореме Пифагора.

Дополнительно

Функция println() – это очень удобный инструмент для отладки вашего скетча. Вы часто будете использовать ее для вывода значений на консоль. Например, println(a) ведет на консоль значение переменной. Вы можете комбинировать переменные и даже другие функции внутри функции println() так, как мы сделали это только что в этом маленьком скетче. Посмотрим, как вы можете сделать это.

println( x + y );

Эта строка кода выведет на консоль число -12. Оператор + имеет высший приоритет по сравнению с функцией println(), поэтому он будет выполняться первым.

println( x + " " + y );

Эта строка кода выведет на консоль 177 -189 и это является самым простым способом вывести на консоль значения переменных. Знак + в этом примере используется в функции println() для объединения значений двух переменных и пробела в кавычках в одну переменную типа String.

Источник: Ян Вантомм, Processing 2: креативное программирование, перевод с английского Александры Мишутиной, Published by Packt Publishing Ltd., 2012, BIRMINGHAM – MUMBAI.

По теме:

  • Комментарии