Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

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

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


Перевод: Максим Кузьмин (Cubewriter)
Перевел 2268 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


scale() [1]

Обозначение

scale()

Описание

Увеличивает или уменьшает масштаб фигуры, приближая и удаляя друг от друга ее вершины. По умолчанию масштабирование объекта всегда происходит относительно начала координат. Значения для scale() задаются с помощью десятичной дроби. К примеру, вызов scale(2.0) увеличит масштаб фигуры на 200%. Эта трансформация применяется ко всему, что с фигурой происходит потом, а последующие вызовы scale() умножают эффект. К примеру, если вызвать scale(2.0), а затем scale(1.5), то это то же самое, что и scale(3.0).

Если вызвать scale() внутри draw(), в начале следующего цикла трансформация сбросится. Чтобы в scale() можно было использовать параметр z, в коде также необходим метод size() с параметром P3D – как показано в третьем примере ниже.

Кроме того, этим методом можно управлять при помощи pushMatrix() и popMatrix().

Синтаксис

scale(s)
scale(x, y)
scale(x, y, z)

Параметры

s – процентное значение для изменения масштаба объекта. Тип данных – float
x – процентное значение для изменения масштаба объекта по оси X. Тип данных – float
y – процентное значение для изменения масштаба объекта по оси Y. Тип данных – float
z – процентное значение для изменения масштаба объекта по оси Z. Тип данных – float

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

void

Пример

№1

Processing scale 0.png


  1. rect(30, 20, 50, 50);
  2. scale(0.5);
  3. rect(30, 20, 50, 50);

№2

Processing scale 1.png


  1. rect(30, 20, 50, 50);
  2. scale(0.5, 1.3);
  3. rect(30, 20, 50, 50);

№3

Processing scale 2.png


  1. // масштабирование в 3D требует метода size() с параметром P3D:
  2. size(100, 100, P3D);
  3. noFill();
  4. translate(width/2+12, height/2);
  5. box(20, 20, 20);
  6. scale(2.5, 2.5, 2.5);
  7. box(20, 20, 20);

См.также

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

  1. processing.org - scale()