Лабораторная работа №3

Тема: Команды и операции над объектами

1. Основные понятия

2. Практическое задание

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

Перед тем, как приступить к созданию и редактированию конкретных сплайнов, определим основные понятия, связанные с особенностями их геометрии. Мы будем оперировать следующими понятиями:

· сегмент — это часть линии сплайна между двумя соседними вершинами;

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

В программе используются четыре типа вершин:

· Corner (С изломом) — вершина, примыкающие сегменты к которой не имеют кривизны;

· Smooth (Сглаженная) — вершина, через которую кривая сплайна проводится с изгибом и имеет одинаковую кривизну сегментов с .обеих сторон от нее;

· Bezier (Безье) — вершина, подобная сглаженной, но позволяющая управлять кривизной сегментов сплайна с обеих сторон от вершины. Для этого вершина снабжается касательным отрезком с маркерами в виде квадратов зеленого цвета на концах. Перемещая маркеры касательных отрезков вокруг вершины, можно изменять направления, по которым сегменты сплайна входят в вершину и выходят из нее, а изменяя расстояние от маркера до вершины — регулировать кривизну сегментов сплайна;

· Bezier Corner (Безье с изломом) — вершина, которая, как и вершина типа Bezier, снабжена касательным вектором. Однако у вершин Bezier Corner(Безье с изломом) касательные не связаны друг с другом отрезком, и маркеры можно перемещать независимо.

Разновидностей вершин не случайно так много. Вершины делают сплайн, как короля его свита. Типы их показаны на Рисунок. 1.

Рисунок 1. Типы вершин

Доступ к редактированию сплайнов на уровне отдельных сегментов и вершин открывается с помощью кнопки Modify (Изменить) на командной панели.

Сплайны относятся к категории Shapes (Формы). Формы могут состоять из нескольких отдельных сплайнов. Если форма состоит более чем из одного сплайна, можно применять преобразования к сплайнам, как к набору объектов, либо объединить их в пределах формы в один, более сложный, сплайн.

Определимся с порядком создания сплайнов. Для этого:

1. Щелкните LM на кнопке Shapers (Формы) командной панели Create (Создать) и выберите в списке объектов Splines (Сплайны). В свитке Object Type (Тип объекта) появится набор стандартных примитивов.

Над кнопками типов объектов в свитке Object Type (Тип объекта) размещена кнопка StartNew Shape (Начать новую форму), которая по умолчанию заблокирована во включенном состоянии. Если разблокировать ее, сбросив расположенный справа флажок, то все вновь создаваемые сплайны будут принадлежать одной и той же форме. В этом случае, чтобы начать новую форму, придется щелкнуть на кнопке StartNew Shape(Начать новую форму).

2. В свитке Object Type (Тип объекта) выберите объект требуемого типа.

В нижней части появятся свитки с параметрами выбранного объекта:

Rendering (Визуализация), Interpolation (Интерполяция), Creation Method(Метод создания), Keyboard Entry (Клавиатурный ввод), Parameters (Параметры).

3. В свитке Creation Method (Метод создания) отметьте Edge (От края) или Center (От центра) в зависимости от способа построения: от края или от центра.

Объекты Line (Линия) и Arc (Дуга) имеют иные свитки Creation Method(Метод создания). Они будут рассматриваться при построении соответствующих сплайнов.

4. Настройте параметры интерполяции криволинейных сегментов сплайна в группе Interpolation (Интерполяция) свитка General (Общие):

· задайте число точек излома криволинейных сегментов с помощью счетчика Steps (Шагов);

· установите параметры Optimize (Оптимальная), которые заставят программу оптимизировать сплайн путем сброса в ноль числа шагов для его линейных сегментов.

Линия

Выполните следующие шаги:

1. В свитке Creation Method (Метод создания) установите переключатель Initial Type (Начальный тип).Этим вы определите тип вершины, которая будет создаваться при щелчке мыши: Corner (С изломом) или Smooth (Сглаженная).

2. Установите переключатель Drag Type (Вершина при перетаскивании) в одно из трех положений: Corner (С изломом), Smooth (Сглаженная) или Bezier (Безье).Таким образом вы зададите тип вершины, которая будет создаваться при перетаскивании курсора после щелчка.

3. Щелкните в точке окна проекции, где будет располагаться первая вершина линии.

Создать очередную вершину можно простsм щелчком кнопки мыши. В этом случае вершина приобретет тип, определяемый положением переключателя Initial Type(Начальный тип). По умолчанию это вершина типа Corner (С изломом). Если при создании очередной вершины щелкнуть кнопкой мыши и, удерживая ее, перетащить курсор, то будет создана вершина, тип которой определяется положением переключателя Drag Type (Вершина при перетаскивании). По умолчанию это вершина Bezier (Безье).

Редактирование и модификация сплайнов.

Сплайны, как и любой другой тип объектов, допускают редактирование и модификацию. Их можно редактировать на уровне формы и на уровне ее подобъектов, таких как отдельные сплайны, их вершины и сегменты. Для каждого типа подобъектов имеются свои виды модификаторов. В режиме редактирования на уровне подобъектов могут быть выделены только соответствующие подобъекты сплайна. Инструменты преобразований тоже могут быть применены лишь к подобъектам. Средства редактирования и модификации сплайнов на различных уровнях позволяют создавать из сплайнов практически любые двумерные формы.

Редактирование, сплайновой формы позволяет присоединить к ней другие готовые сплайны, создать отрезки линий в качестве сегментов текущего сплайна, изменить параметры интерполяции криволинейных сегментов, заданных при его создании.

Перейдем к редактированию.

1. На командной панели Create (Создать) нажмите кнопку Shapes(Формы), в списке выберите значение Splines (Сплайны), нажмите кнопку Line (Линия) и постройте два отдельных сплайна, как показано на Рисунок. 2.

2. Перейдите на командную панель Modify (Изменить).

3. Если последний построенный сплайн остался выделенным, то на командной панели сразу появятся свитки редактирования сплайнов.

4. Раскройте свиток Geometry (Геометрия) и выберите кнопку Attach (ПРисунокоединить).

5. Это действие позволяет пРисунокоединить к выделенной сплайновой форме готовый сплайн.

6. Переместите курсор в окно проекции и укажите на присоединяемый сплайн.

Рисунок. 2.1 Редактируемые сплайны Рисунок. 2.2. Сплайны, объединенные в одну форму

Когда курсор примет специальный вид, щелкните LM. Два сплайна будут соединены в одну форму. На это указывает раздвинувшаяся рамка выбора объектов. Результат пРисунокоединения показан на Рисунок. 2.2

5. Отметьте в свитке Geometry (Геометрия) флажок Reorient (Переориентировать).

Его установка вызовет переориентацию пРисунокоединяемого сплайна в соответствии с локальной системой координат редактируемого сплайна.

Создайте еще один сплайн следующим образом.

1. В свитке Geometry (Геометрия) нажмите кнопку Create Line (Создать линию).

Это позволит создавать новые линии, которые будут добавляться к текущей сплайновой форме.

2. Переместите курсор в окно проекции на один из концов созданного сплайна и начинайте Рисуноковать.

Если перед началом Рисунокования указать курсором на один из концов текущего сплайна, то курсор примет вид, соответствующий режиму пРисунокоединения создаваемой линии. В этом случае линия будет пРисунокоединена к текущему сплайну в качестве сегмента.

Теперь посмотрим, как расширить возможности редактирования сплайнов. С этой целью используем вариант редактирования с помощью кнопки Edit Spline (Редактирование сплайна).

3. Щелкните LM накнопке Configure Button Sets (Конфигурированиенаборовмодификаторов), воткрывшемсясвиткевыберетевариант Patch/Spline Editing (Путь/Редактируемыйсплайн) ивпоявившемсяменющелкнитенакнопке Edit Spline (Редактированиесплайна) (Рисунок. 2.3).

Рисунок 2.3. Меню правки стека

Список свитка Geometry (Геометрия) пополнился новыми элементами.

4. Нажмите кнопку Attach Multiple (ПРисунокоединить несколько), которая позволит пРисунокоединить к выделенной сплайновой форме несколько новых форм. После этого появится одноименное диалоговое окно (Рисунок.3).

5. Выделите в списке окна имя первой созданной формы. По умолчанию ей было пРисуноквоено имя Line01. Щелкните LM на кнопке Attach (ПРисунокоединить) в правом нижнем углу окна.

Выделенный в списке объект будет пРисунокоединен к ранее указанной сплайновой форме. В списке можно выделить любое число ранее созданных форм. В нашем случае список состоит из одной формы.

Кнопки свитка Interpolation (Интерполяция) управляют интерполяцией криволинейных сегментов сплайна. Ее параметры: Steps (Шаги), Optimize(Оптимальная) и Adaptive (Адаптивная).

Рисунок. 3. Диалоговое окно нескольких форм

Использование настроек свитка Rendering (Визуализация) позволяет сделать сплайн визуализированным объектом. Параметры визуализации: Renderable(Визуализируемый), Generate Mapping Coords (Проекционные координаты) и Thickness (Толщина).

Редактирование сплайнов на уровне вершин

Редактирование сплайнов на уровне вершин позволяет из простого сплайна создать сплайн практически любой конфигурации.

1. Отмените команды предыдущего редактирования с помощью инструмента Undo (Предыдущий).

При этом один из сплайнов должен остаться выделенным.

1. В свитке Selection (Выбор) щелкните LM на левой из пиктограмм, показанных на Рисунок.4.

Рисунок.4. Пиктограммы выбора подобъектов редактирования

Вами выбран режим редактирования вершин. В выделенном сплайне все вершины обозначатся крестиками, а первая вершина — квадратиком.

3. Для изменения типа вершины выделите одну или несколько вершин любым известным способом (например, прямоугольной рамкой), укажите курсором на одну из них и щелкните RM.

В нижней части появившегося меню Tools 1 (Рисунок.5) приведен перечень четырех типов вершин. Текущий тип будет помечен галочкой.

Рисунок. 5. Контекстное меню преобразований

4. Выберите нужный тип вершины из предложенного списка и щелкните LM.

Остальные команды редактирования вершин будем выбирать в свитке Geometry (Геометрия).

5. Задайте параметр Connect (Соединить), который позволяет соединять две вершины на концах разомкнутого сплайна отрезком прямой.

6. Установите курсор на один из концов ломаной и, нажав LM, перетащите курсор ко второму концу ломаной. Когда курсор примет специальный вид, отпустите кнопку.

Пример соединения вершин показан на Рисунок. 6

Используем теперь кнопку Break (Разбить). Она позволяет разбить любую, кроме концевых, вершину сплайна на две совпадающие, но не соединяющиеся вершины.

7. Выделите предназначенную для разбиения вершину и щелкните LM на кнопке Break (Разбить).

Вновь добавленная в месте разрыва вершина становится первой и обозначается квадратиком.

8. Нажмите кнопку Refine (Уточнить).

Данное действие позволяет вставить дополнительную вершину в произвольной точке сплайна без изменения его формы. Такая вершина может понадобиться, например, для разрыва в этом месте сплайна.

Рисунок 6. Пример соединения двух вершин сплайна

9. Установите курсор на линию сплайна и, когда курсор примет специальный вид, щелкните LM.

10. Нажмите кнопку Insert (Вставить), которая дает возможность вставить вершину в любой точке сплайна, сразу же переместить ее и продолжить добавление новых вершин и сегментов сплайна.

11. Установите курсор на линию сплайна и, когда курсор примет специальный вид, щелкните LM, перетащите курсор в нужное место и щелкните LM еще раз.

Возможность добавлять вершины при выбранной команде не ограничена. Для завершения команды щелкните RM.

12. Нажмите кнопку Weld (Слить), позволяющую слить две концевые или совпадающие вершины в одну.

13. Подведите одну концевую вершину к другой с помощью инструмента Move (Переместить) и, если расстояние между вершинами окажется меньше, чем указанное в счетчике Weld Threshold (Порог слияния), то появится сообщение "WeldCoincidentendpoint?" (Слить совпадающие вершины). Щелкните на кнопке Yes.

Таким способом можно получить замкнутую форму из любого незамкнутого сплайна. Пример слияния вершин показан на Рисунок 7.

Рисунок 7. Пример слияния вершин сплайна

14. Для удаления вершин выделите их любым из способов и нажмите кнопку Delete (Удалить).

Данное действие не только удалит вершины, но и объединит сегменты, на стыке которых они располагались, в один сегмент. Результат удаления вершины приведен на Рисунок. 8.

Рисунок 8. Пример удаления выделенной вершины сплайна

Рассмотрим режим, при котором можно синхронно перемещать маркеры всех касательных векторов вершин типа Безье.

1. Постройте сплайн-окружность, нажав в свитке Object Type (Тип объекта) кнопку Circle (Окружность). Выберите все вершины сплайн-формы способом прямоугольной рамки.

2. Установите курсор на одну из вершин и щелкните RM.

3. Выберите в открывшемся списке вершину Безье.

Выделенные вершины обозначены теперь красными крестиками, а концы касательных векторов вершин Безье — зелеными прямоугольниками.

4. В свитке Selection (Выбор) отметьте флажок Lock Handles (Блокировать маркеры) и установите переключатель All (Все).

5. Выберите инструмент Move (Переместить) и переместите любой из маркеров касательного вектора.

Перемещение любого из маркеров заставляет синхронно перемещаться и все остальные маркеры. На Рисунок 9 показаны исходная сплайн-окружность и сплайн, полученный из нее путем синхронного перемещения вершин.

Рисунок 9. Пример синхронного перемещения вершин сплайн-окружности

6. Установите переключатель Alike (Подобные) и в этом режиме переместите любой из маркеров касательного вектора.

Обратите внимание, что теперь перемещаются не все маркеры, а только соответствующие выбранному. То есть, если выбран входящий маркер, то перемещаются только входящие маркеры остальных касательных векторов.

Редактирование сплайнов на уровне сегментов

Редактирование сплайнов на уровне сегментов позволяет разбивать сплайн на отдельные части, добавлять новые вершины к существующим сегментам, отделять сегменты, преобразуя их в самостоятельные формы и удалять сегменты.

1. Сбросьте выбор вершин, щелкнув LM в любой точке экрана.

2. В свитке Selection (Выбор) щелкните на кнопке с пиктограммой Segment (Сегмент).

Вы перешли в режим редактирования сплайнов на уровне сегментов.

3. Для изменения типа сегмента выделите один или несколько сегментов. Выделенные сегменты отличаются красным цветом.

4. Выставьте курсор на любой из них и щелкните RM.

Появится контекстное меню сегментов, показанное на Рисунок. 10. В нижней части меню приведен перечень типов сегментов: Curve (Кривая) и Line (Линия). Текущий тип отмечен галочкой.

Рисунок 10. Меню преобразования с разделом типов сегментов

5. Назначьте для выбранного сегмента тип Line (Линия).

6. Нажмите кнопку Break (Разбить) в свитке Geometry (Геометрия).

Это действие позволяет разбить сплайн на два отдельных сплайна путем вставки вершины в указанной точке.

7. Наведите на сегмент курсор сплайна и, когда он примет специальный вид, щелкните LM.

В указанной точке на сегменте появится прямоугольник, обозначающий начало сегмента. Сам же исходный сегмент будет разорван в этой точке. Чтобы убедиться в этом, достаточно переместить его с помощью инструмента Move (Переместить).

8. Нажмите кнопку Refine (Уточнить) в свитке Geometry (Геометрия), которая позволяет вставить вершину в произвольной точке сплайна, не разбивая сплайн и не меняя его формы.

9. Укажите курсором на сегмент сплайна и, когда курсор примет вид, показанный на Рисунок. 11, щелкните LM.

Новая вершина будет отмечена крестиком.

Рисунок 11. Пример разбиения сегмента сплайна

10. Выделите сегмент и нажмите кнопку Detach (Отделить) в свитке Geometry (Геометрия).

Это позволит отделить сегмент сплайна, превратив его в самостоятельный объект.

Установка флажка Same Shape (Та же форма) заставляет отдельный сегмент стать частью той же формы, к которой относится сплайн. Установленный флажок Reorient (Исходная ориентация) позволяет привести ориентацию локальных осей координат отделяемого сегмента в соответствие с ориентацией осей координат активного окна проекции, а флажок Copy (Копия) отделяет копию сегмента.

11. Если не отмечен параметр Same Shape (Та, же форма), появится одноименное диалоговое окно. Введите имя создаваемой формы и подтвердите нажатием кнопки ОК.

Отделенный сегмент окрасится в другой цвет.

12. Выделите сегмент, выставьте в счетчике Divisions (Деления) число разбиений и щелкните на кнопке Divide (Разделить) в свитке Geometry (Геометрия).

Это действие, позволяющее равномерно разбить выделенный сегмент на более мелкие сегменты за счет размещения равноудаленных вершин по всей длине сегмента. Число добавляемых сегментов задается в счетчике Divisions (Деления). На Рисунок. 6.13 показан вариант разбиения сегмента.

13. Кнопка Delete (Удалить) позволяет удалять выделенный сегмент сплайна, а кнопка Insert (Вставить) выполняет ту же операцию, что и аналогичная команда редактирования вершин.

Рисунок 12. Сегмент сплайна, разбитый на части

Редактирование сплайнов на уровне сплайнов

Данный вид редактирования позволяет объединять, замыкать, выполнять булевские и другие операции над сплайнами.

1. Выделите для редактирования один из построенных сплайнов. В свитке Selection (Выбор) щелкните на кнопке с пиктограммой Spline (Сплайн). Выделенный сплайн приобретет красный цвет в окнах проекций.

2. Если выбранный вами сплайн не замкнут, то замкните его, нажав кнопку Close (Замкнуть) в свитке Geometry (Геометрия).

Начальная и конечная точки вашего сплайна соединятся отрезком прямой. На Рисунок. 13 показано замыкание ранее созданного сплайна.

Рисунок 13. Пример замыкания сплайна

3. Нажмите кнопку Outline (Контур).

Выполненное действие позволяет построить контур любой ширины выделенного сплайна. Он представляет собой замкнутый сплайн. Пример построения контура приведен на Рисунок. 14.

Рисунок 14. Пример создания контура сплайна

4. Укажите курсором на редактируемый сплайн. Когда курсор примет специальный вид, щелкните LM и перетащите курсор на требуемое расстояние, создавая контур.

Второй способ построения контура состоит в том, чтобы выделить исходный сплайн, задать расстояние между ним и линией контура в счетчике Outline Width (Ширина контура) и щелкнуть на кнопке Outline (Контур). Если флажок Center (От центра) не отмечен, то исходный сплайн остается на месте, а контур обводки создается от него на расстоянии, заданном в счетчике. Если отметить флажок Center (От центра), то исходный сплайн и линия контура смещаются в противоположных направлениях на половину величины, указанной в счетчике.

Рассмотрим варианты выполнения булевской операции над сплайнами. Здесь понадобятся оба построенных сплайна. И они должны быть составными частями одной двумерной формы

1. Переместите один из сплайнов с помощью инструмента Move(Переместить) до пересечения с другим, как на Рисунок. 15, и оставьте его выделенным (красного цвета).

2. Объедините оба сплайна, щелкнув LM на кнопке Attach (ПРисунокоединить) в свитке Geometry (Геометрия), и далее щелкните на пРисунокоединяемом сплайне.

Рисунок 15. Сплайны, подготовленные для Объединения

3. Щелкните LM последовательно на кнопках Union (Объединение) и Boolean (Булевские). Наведите на второй сплайн курсор и, когда он примет специальный вид, щелкните LM.

Пример объединения двух сплайнов показан на Рисунок. 16. Две оставшиеся логические операции: Intersection (Пересечение) и Subtraction (Исключение) выполните самостоятельно.

Рисунок 16. Результат булевского объединения двух сплайнов

4. Для работы с командой Mirror (Отразить) назначьте один из вариантов зеркального отражения и щелкните на кнопке Mirror (Отразить). Выделенный сплайн зеркально отразится в соответствии с пиктограммой на кнопке группы вариантов. Флажок Copy (Копия) позволяет создать зеркальную копию выделенного сплайна.

Нажатие кнопки Reverse (Обратить) ведет к обращению порядка следования вершин выделенного сплайна.

Практическое задание.

1. Сначала создадим исходную систему полок книжного шкафа. Для этого воспользуемся сплайнами: Фигуры (Shapes) (или Формы) в командной панели Create (Создать) и выбрать в раскрывающемся списке разновидность объектов Сплайны (Splines). Должно получится нечто подобное на то, что показано на Рисунокунке справа. Основная часть создается инструментом Линия (Line). В данном случае вначале построена система из пересекающихся линий, далее все линии объединены в один сплайн при помощи кнопки Attach (Присоединить). После этого, добавляя новые вершины, удаляя лишние отрезки линий сплайна и объединяя линии в одну, необходимо добиться того, чтобы сетка линий стала цельной. Как это сделать, подробно описано в первой части в основных понятиях

2. Когда исходная система стен готова, выделите сплайн, если он еще не выделен, перейдите в панели Modify щелкните на Modifier List, найдите Выдавить (Extrude) и введите ширину полок шкафа в поле Количество (Amount) свитка Параметры (Parameters).

3. Чтобы книжный шкаф выглядел реалистичнее, в окне Material Editor (Редактор материала) выберем тип материала Wood_Oak и перенесем его на созданный объект. Должно получится нечто подобное показанному на Рисунке слева.

4. Книжные полки справа от шкафа также создаются из сплайнов. Однако здесь удобнее использовать инструмент Rectangle (Прямоугольник).

5. Книги на полках – это стандартные объекты Box.

6. Стены и пол комнаты, в корой находится книжный шкаф – это также объект Box. Чтобы объект Вох выглядел как комната, нужно на панели Modify щелкнуть на Modifier List, выбрать из списка метод Normal.

7. В результате получилось изображение представленное на Рисунке.