Страницы

Thursday, 26 May 2011

Руководство по Image_3D: Изменение объектов и форм (часть 5 из 13)

Перевод пятой части руководства по PEAR пакету Image_3D, оригинал http://www.ibm.com/developerworks/opensource/tutorials/os-php-3d/section5.html

Изменение объектов и форм

Если вы когда-либо использовали инструмент преобразования в Adobe Photoshop, вы, вероятно, знакомы с его способностью перемещать, масштабировать, вращать, и наклонять элементы. Метод transform() для 3D объектов и пространств является аналогичным инструментом.

Преобразование матриц

То что кажется пугающем термином, на практике, преобразование матрицы на самом деле просто контроль за перемещением, масштабированием или вращением объекта. Это достигается путем предварительного создания Image_3D_Matrix, а затем передачей его методу transform(). Не так плохо, в конце концов.

Вот три примера (заметьте, что каждая матрица принимает массив с тремя значениями в качестве второго параметра):
$obj->transform($world->createMatrix('move', array(-50, -30, 10)));
$obj->transform($world->createMatrix('scale', array(70, 220, 70)));
$obj->transform($world->createMatrix('rotation', array(45, 0, 0)));
Значения в массиве для 'move' матрицы означают движение по осям X, Y и Z. Значения, применяемые к 'scale', указывают на степень масштабирования по тем же трем осям. Значения, связанные с 'rotation', указывают градус вращения вокруг каждой оси, от 0 до 360. На рисунке 5 показано направление вращения (помните, что отрицательные значения могут быть применены как обратные этих направлений).

Рисунок 5. Направления вращений вокруг осей X, Y и Z


Когда и где применять преобразования

Каждое из этих преобразований может быть применено к отдельному объекту или всему 3D пространству. Вы видели, как конус может быть повернут, масштабирован и перемещен в пространстве на первом изображении, которое вы создали. Если вы применили преобразование к $world, то они бы повлияли на все, что находится в 3D пространстве; все объекты и источники света в пространстве будут затронуты как одна большая комната.

Преобразования применяются к каждому объекту в указанном порядке. Это может показаться очевидным, но если вы применяете много преобразований для отдельных объектов, а также пространства в целом, то вы можете получить неожиданные результаты, если будете легкомысленно относится к порядку, в котором добавляете ваши преобразования.

Другие части перевода

Перед началом работы (часть 1 из 13)
Расположение в пространстве (часть 2 из 13)
Создание вашего первого мира (часть 3 из 13)
Источники света и цвета (часть 4 из 13)
Изменение объектов и форм (часть 5 из 13)
Дополнительные объекты (часть 6 из 13)
Пользовательские формы и поверхности (часть 7 из 13)
Дополнительные драйверы вывода (часть 8 из 13)
Возвращение к практическим примерам (часть 9 из 13)
Суммарно (часть 10 из 13)
Скачать (часть 11 из 13)
Ресурсы (часть 12 из 13)
Об авторе (часть 13 из 13)

Автор перевода: reket.

No comments:

Post a comment