Свойство масштаба (scale) определяет сжатие или растяжение объекта вдоль указанной оси. По умолчанию значение составляющих X, Y и Z свойства масштаба равно 1,0, что соответствует масштабу 100% объекта по каждой из осей координат. Если установить значение одной из составляющих свойства масштаба равным 2,0, исходный масштаб объекта увеличится вдвое, а если установить ее значение равным 0,5, то исходный масштаб объекта сократится наполовину.
Масштаб объекта можно изменить по всем трем координатам следующим образом:
s.scale = [2.0, 1.0, 0.5]
Аналогично положению, масштаб указывается в виде данных типа Point3. В приведенном выше примере объект растягивается в два раза вдоль оси X, не изменяет свой размер вдоль оси Y и сокращается вдоль оси Z. Если же объект требуется растянуть только вдоль оси X, для этого достаточно ввести следующую строку кода:
s.scale.x = 2.0
Для пропорционального масштабирования объекта достаточно умножить свойство масштаба на требуемую величину:
s.scale = 3.0 * s.scale — или
s.scale *= 3.0
Приведенный выше фрагмент кода означает следующее: “Установить новое значение свойства масштаба, которое в 3 раза больше его текущего значения”. При этом объект масштабируется по всем трем осям.
Аналогично свойству pos и методу move для свойства масштаба имеется соответствующий метод scale. Данный метод реализуется следующим образом:
b = box()
scale b [1.0, 2.0, 3.0]
В этом фрагменте кода параллелепипед масштабируется на разную величину в направлении каждой из осей координат. Свойство .scale и метод scale действуют таким же образом, как и свойство .position и метод move, а именно: значение свойства задается явно в виде данных типа Point3, а метод изменяет это значение с указанным приращением.
Для масштабирования объекта выполните следующее упражнение.
1. Введите в окне приемника команд следующую строку кода:
b = box()
2. Для того чтобы установить свойство масштаба, введите и вычислите следующую строку кода:
b.scale = [2, 2, 2]
В качестве результата в приемнике команд возвращается значение [2, 2, 2] данного свойства.
3. Для того чтобы вновь установить масштаб, введите следующую строку кода:
b.scale = [2, 2, 2]
В приемнике команд по-прежнему возвращается значение [2, 2, 2].
4. Примените метод scale, введя следующую строку кода:
scale b [2, 2, 2]
В приемнике команд возвращается значение [4, 4, 4].