Общие сведения о сплайнах
Порядок создания сплайнов
Линия
Прямоугольник и эллипс
Многоугольник
Дуга и сектор
Спираль
Звезда
Текст
Сечение
NURBS-кривые
Если вам понадобится создать
объекты более сложные, чем представленные в разделах стандартной геометрии, то
придется научиться строить различного типа сплайны и уметь их редактировать.
Они послужат в дальнейшем основой для создания сложных трехмерных моделей с
помощью методов лофтинга, вращения и вытягивания. Кроме того, сплайны могут
применяться в качестве линий траектории движения объектов при анимации.
Пред тем, как приступить к созданию и редактированию
конкретных сплайнов, определим основные понятия, связанные с особенностями их
геометрии. Мы будем оперировать следующими понятиями:
·
сегмент
— это часть линии сплайна между двумя соседними вершинами;
·
вершины
— различаются по типу и определяют степень кривизны сегментов
сплайна, прилегающих к этим вершинам. Первая вершина, обозначающая начало
сплайна, в момент создания помечается квадратом белого цвета.
В программе используются четыре типа вершин:
·
Corner (С изломом) — вершина, примыкающие
сегменты к которой не имеют кривизны;
·
Smooth (Сглаженная) — вершина, через которую
кривая сплайна проводится с изгибом и имеет одинаковую кривизну сегментов с
.обеих сторон от нее;
·
Bezier (Безье) — вершина, подобная
сглаженной, но позволяющая управлять кривизной сегментов сплайна с обеих сторон
от вершины. Для этого вершина снабжается касательным отрезком с маркерами в
виде квадратов зеленого цвета на концах. Перемещая маркеры касательных отрезков
вокруг вершины, можно изменять направления, по которым сегменты сплайна входят
в вершину и выходят из нее, а изменяя расстояние от маркера до вершины —
регулировать кривизну сегментов сплайна;
·
Bezier Corner
(Безье с изломом) — вершина, которая, как и вершина типа Bezier, снабжена касательным вектором.
Однако у вершин Bezier Corner(Безье с изломом)
касательные не связаны друг с другом отрезком, и маркеры можно перемещать
независимо.
Разновидностей вершин не случайно так много. Вершины делают сплайн, как
короля его свита. Типы их показаны на рис. 5.1.
|
Рис. 5.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
(Создать) нажмите кнопку Shapers
(Формы), в списке объектов выберите вариант Splines
(Сплайны), укажите Rectangle (Прямоугольник) и задайте способ
создания "от края".
2. Щелкните
LM в окне проекции и
перетащите курсор по диагонали, следя за значением параметров Length (Длина) и Width (Ширина). Отпустите кнопку мыши, фиксируя
прямоугольник.
3. Для
закругления углов прямоугольника введите значение радиуса закругления в
счетчике Corner Radius
(Радиус закругления).
4.
Тем же способом создайте эллипс с помощью
кнопки Ellips (Эллипс).
Чтобы создать квадрат с помощью примитива Rectangle (Прямоугольник) или окружность — с
помощью примитива Ellips
(Эллипс), стройте объекты при нажатой клавише <Ctrl>. На рис. 5.2 показан
прямоугольник и его модификация со скругленными углами.
|
Рис. 5.2.
Прямоугольник и его модификация
|
Многоугольник можно создать несколькими способами: с
помощью команды Ngon (N-угольник) и вручную с
помощью команды Line
(Линия).
1. Для
построения правильного многоугольника выберите способ создания — "от
края" и задайте число сторон многоугольника в счетчике Sides(Стороны).
2. Щелкните
LM в окне проекции и
перетащите курсор, следя за параметром Radius
(Радиус). Отпустите кнопку мыши, фиксируя объект.
Переключатель под
счетчиком Radius
(Радиус) фиксирует один из следующих способов построения:
·
Inscribed (Описанный) — в счетчике
фиксируется радиус окружности, описанной вокруг многоугольника;
·
Circumscribed (Вписанный) — в счетчике
фиксируется радиус окружности, вписанной в многоугольник.
3. При
необходимости скруглить углы многоугольника задайте радиус закругления в
счетчике Corner Radius
(Радиус закругления), а установка параметра Circular
(Круглый) превратит многоугольник с любым числом сторон в окружность.
Рассмотренные виды многоугольника представлены на рис. 5.3.
|
Рис.
5.3. Многоугольник и его модификация
|
4.
Построим многоугольник с помощью
примитива Line (Линия):
установите переключатели Initial Type (Начальный тип) и Drag Type (Вершина при
перетаскивании) в положение Corner
(С изломом). После выбора команды каждый щелчок LM будет фиксировать отрезок
ломаной линии. Закончить построение ломаной можно щелчком RM.
5. Для
замыкания ломаной линии в очередной раз щелкните LM в точке начала ломаной, и когда
появится запрос Close Spline (Замкнуть сплайн), нажмите кнопку Yes.
Вы получили ломаную линию, где вершины строились с изломом, а сегменты
— как отрезки прямой. Теперь самостоятельно постройте сплайн, состоящий из
нескольких сегментов, комбинируя параметры Corner
(С изломом), Smooth
(Сглаженная) и Bezier
(Безье) в разделах Initial Type (Начальный тип) и Drag Type (Вершина при
перетаскивании). Положение Initial Type
(Начальный тип) определяет, какого типа вершины будут создаваться при щелчке LM, a Drag Type (Вершина при
перетаскивании) — при перетаскивании после щелчка. Проанализируйте влияние
различных комбинаций параметров на форму вершин и сегментов сплайна.
Пример создания сплайна произвольной формы с
использованием различных вариантов построения вершин показан на рис. 5.4.
|
Рис.
5.4. Сплайны с различным способами построения вершин
|
Для построения дуги и сектора выполните следующие
шаги:
1. Выберите
примитив Arc (Дуга).
Это позволит создавать
сплайны в виде дуги и сектора, как показано на рис. 5.5.
2. Установите
переключатель в свитке Creation Method (Метод создания) в одно из двух положений: End- End- Middle (Конец — Конец — Середина) или Center- End- End (Центр — Конец — Конец).
|
Рис. 5.5. Дуга и сектор
|
3. Если
выбран метод End- End- Middle
(Конец — Конец — Середина), щелкните в окне проекции, где должен располагаться
один из концов дуги, и перетащите курсор до точки, в которой будет размещаться
второй конец дуги.
За курсором будет тянуться прямая линия.
4. Отпустите
кнопку мыши, фиксируя положение второго конца дуги. Переместите курсор, чтобы
настроить радиус дуги.
Следите за значением
параметра Radius
(Радиус).
5. Щелкните
LM, фиксируя дугу.
6. Установите
нужные значения параметров в счетчиках From
(От) и То (До), указывающих
угловые значения начальной и конечной точек дуги на окружности, отсчитываемой
от оси Х локальной системы координат сплайна.
7. Если
выбран метод Center- End- End
(Центр — Конец — Конец), щелкните LM в точке, где будет располагаться центр окружности, частью
которой будет являться ваша дуга.
8. Перетяните
курсор, настраивая радиус дуги и определяя точку ее начала. Отпустите кнопку
мыши, фиксируя радиус и начало дуги.
9. Щелкните LM, фиксируя положение конца дуги.
10. Отметьте
опцию Pie Slice
(Сектор), чтобы создать замкнутый сплайн в виде сектора.
Чтобы поменять точки начала и конца дуги, достаточно отметить параметр Revers
(Обратить).
Спираль можно построить, воспользовавшись следующей
инструкцией:
1. Выберите
примитив Helix(Спираль).
Это позволит создать
сплайн в виде трехмерной спирали с заданным числом витков, как на рис. 5.6.
|
Рис. 5.6. Спираль
с заданным числом витков
|
2. Задайте
способ создания спирали — от края или от центра, отметив позицию Edge (От края) или Center (От центра) в списке параметров.
3. Щелкните
LM в окне проекции, где
должна располагаться начальная точка спирали, перетащите курсор, чтобы задать
радиус спирали у ее основания, и отпустите кнопку.
Радиус основания спирали
фиксируется в окне параметра Radius1 (Радиус1),
а опорная точка спирали разместится в центре ее основания.
4. Перетащите
курсор вверх или вниз для задания высоты спирали и щелкните LM.
Высота спирали отразится
в окне параметра Height
(Высота).
5. Переместите
курсор к центру или от центра спирали для задания радиуса ее витка у вершины и
щелкните LM.
Радиус витка спирали у
вершины фиксируется в окне параметра Radius2 (Радиус2).
6. Задайте
в счетчике Turns (Витки) число
витков спирали, т. е. количество полных витков от основания до вершины спирали.
7. Уменьшите
шаг витков спирали к ее вершине. Используйте для этого параметр Bias (Смещение), установив его значение
равным 1 (рис. 5.7).
Значения параметров Bias (Смещение)
лежат в пределах от -1 до 1. Спираль с постоянным шагом строится при Bias равном 0. Уменьшение шага от вершины к
основанию определяет знак "-" значения переменной Bias(Смещение).
|
Рис. 5.7. Спираль
с равномерным изменением расстояния между витками
|
8. Поменяйте
направление закрутки витков спирали с помощью параметров CW (По часовой
стрелке) и CCW (Против часовой
стрелки).
Объекты такого вида представляют собой замкнутые
сплайны в виде звезды с произвольным количеством лучей.
1. Выберите
примитив Star (Звезда) в
установленном свитке типов объектов, щелкните в точке окна, где будет
располагаться центр звезды, и перетащите курсор, задавая параметр Radius 1 (Радиус1).
В зависимости от величины
параметра Radius2
(Радиус2), который будет задан на следующем шаге, Radiusl (Радиус1) может быть радиусом как
вписанной в звезду, так и описанной вокруг нее окружности.
2. Переместите
курсор к центру или от центра, чтобы задать параметр Radius2 (Радиус2).
3. Укажите
число лучей в счетчике Points
(Лучи).
Стандартная звезда показа на рис. 5.8, а.
1. С
помощью параметра Distoritions
(Искажения) задайте угол смещения точек звезды, расположенных на окружности
радиусом Radius2 (Радиус2)
относительно точек окружности радиусом Radiusl
(Радиус1).
В результате смещения
получится звезда с косыми лучами, как на рис. 5.8, б.
2. Для
закругления концов звезды (рис. 5.8, в)
определите в счетчике Fillet Radiusl (Радиус! закругления) радиус их
закругления.
3. Для
закругления оснований лучей (рис. 5.8, г)
укажите радиус закругления в счетчике параметра Fillet Radius2
(Радиус2 Закругления).
|
Рис. 5.8.
Стандартная звезда (а), искаженная звезда (б), с закругленными концами (в), с
закругленными углами у основания (г)
|
Если вы работали в текстовых редакторах, то для вас не
составит труда создание текста в 3D StudioMAX. Примитив Text (Текст) позволяет создавать формы,
состоящие из совокупности сплайнов в виде контуров текстовых символов. Для
текста можно задавать размер символов, гарнитуру шрифта, режимы выравнивания
строк текста, межсимвольные интервалы. Текст, как любая другая форма, может
быть геометрически отредактирован.
1. Щелкните
LM на кнопке Text (Текст) и в группе Parameters (Параметры) свитка выберите
гарнитуру шрифта.
2. Укажите
вариант начертания символов:
·
I (Курсив);
·
U (Подчеркнутый).
Полужирное начертание
можно задать, выбрав в списке типов шрифт с пометкой Bold (Полужирный).
3. Задайте
размер шрифта в счетчике Size
(Размер), кернинг (межсимвольный интервал) — в счетчике Kerning (Кернинг) и межстрочный интервал — в
счетчике Leading
(Интерлиньяж).
4. После
задания установок введите текст в поле Text
(Текст).
Для выравнивания строк введенного текста используйте
кнопки с пиктограммами выровненного текста.
5. Разместите
текст в окне проекции, щелкнув LM.
Текст разместится в окне проекции так, что его опорная точка,
находящаяся в центре основания первой строки, расположится в указанной щелчком
кнопкой мыши точке. Если щелкнуть LM и перетаскивать курсор, то текстовая форма
будет перемещаться вместе с курсором до момента, когда будет отпущена кнопка
мыши. Пока текст остается выделенным, можно изменить любые его параметры.
Образец текста приведен на рис. 5.9.
|
Рис. 5.9. Образцы текста
|
Примитив Section
(Сечение) создает специальный тип сплайна, представляющего собой сечение
сетчатой оболочки трехмерного объекта произвольно ориентированной плоскостью.
Создадим объект сложной конфигурации и построим для него сечение.
1. Нажмите
кнопку Geometry
(Геометрия) командной панели Create
(Создать), в списке выберите вариант Standard Primitives (Стандартные примитивы), нажмите кнопку Sphere (Сфера) и создайте сферу. Там же
выберите кнопку примитива Box
(Параллелепипед) и постройте параллелепипед.
2. С
помощью команды Move
(Переместить) переместите параллелепипед до пересечения со сферой, сбросьте
выбор параллелепипеда и выделите сферу.
3. Нажмите
кнопку Geometry
(Геометрия) командной панели Create(Создать), в списке выберите вариант Compound Objects
(Составные объекты) и нажмите кнопку Boolean
(Булевские).
4. В
появившемся свитке параметров команды установите параметры Move(Переместить) и Subtraction (А-В) (Исключение (А-В)).
5. Щелкните
LM на кнопке Pick Operand В
(Указать операнд В) и выделите параллелепипед.
Объект, полученный после
применения булевской операции исключения (рис. 5.10), будет использоваться при
создании сечения.
|
Рис. 5.10. Объект
для создания сечения
|
6. Выберите
примитив Section (Сечение),
щелкните LM в окне проекции, где будет размещено сечение, и растяните объект.
Сплайн-сечение создается
в виде прямоугольной рамки, разбитой на четыре части. Он строится методом
"от центра". В соответствии с принятой по умолчанию установкой
параметра Section Extents (Протяженность сечения) прямоугольник
только обозначает ориентацию плоскости сечения, а его размеры не имеют значения
— плоскость сечения считается неограниченной в пространстве.
7. Переместите
сечение с помощью кнопки Move
(Переместить) до пересечения с построенным объектом, как показано на рис. 5.11.
Желтым цветом будет
прорисована линия пересечения объекта с плоскостью.
8. Щелкните
на кнопке Create Shape
(Создать форму) в свитке Section Parameters (Параметры сечения).
В появившемся окне диалога Name Section Shape (Имя
формы сечения) можно изменить имя сечения или оставить заданное по умолчанию.
Щелкните LM на кнопке ОК. Линия
сечения будет создана в виде редактируемого сплайна.
9. Переместите
плоскость сечения с помощью кнопки Move
(Переместить) так, чтобы было видно все сечение (рис. 5.12).
|
Рис. 5.11. Плоскость сечения, проходящая-сквозь объект
|
|
Рис. 5.12. Контур сечения в виде сплайна
|
Если есть необходимость изменить положение и ориентацию плоскости
сечения, то следует обратиться к командной панели Modify (Изменить).
10. Выберите
вкладку Modify (Изменить)
на командной панели. В свитке Section Parameters
(Параметры сечения) используйте для построения последовательно все три варианта
раздела Update
(Обновление):
·
When Section Moves (При перемещении сечения) — линия сечения
будет обновляться при перемещении или изменении размеров плоскости сечения;
·
When Section Selected (При выделении сечения) — линия сечения
будет обновляться после сброса и повторного выделения плоскости сечения;
11. Manually
(Вручную) — для принудительного обновления линии щелкните LM на кнопке Update Section
(Обновить сечение).
Для изменения размеров
секущей плоскости используйте счетчики Length (Длина) и Width (Ширина) в свитке Section Size
(Размеры плоскости сечения).
NURBS-кривые — сплайн, при построении которого
различают два типа кривых:
·
Point Curve
(Точечная кривая) — проходит через все контрольные точки, заданные в трехмерном
пространстве;
·
CV Curve
(CV-кривая) — плавно огибает все контрольные точки, заданные в трехмерном
пространстве и называемые управляющими вершинами.
1. Построение
NURBS-кривой начнем, как всегда, с назначения команды. На командной панели Create (Создать) нажмите кнопку Shapes (Формы) и укажите NURBS Curves (NURBS-кривые).
В свитке Object Type
(Тип объекта) появятся две кнопки с надписями, соответствующими двум типам
кривых: Point Curve
(Точечная кривая) и CV Curve (CV-кривая).
2.
Щелкните LM на кнопке Point Curve
(Точечная кривая).
В нижней части командной
панели появятся два свитка: Keyboard Entry(Клавиатурный ввод)
и Curve Approximation
(Аппроксимация кривой). Параметры последнего свитка не отличаются от
аналогичных параметров свитка General
(Общие) форм-сплайнов.
3. Щелкните
LM в окне проекции, переместите курсор в следующую точку и зафиксируйте ее
щелчком LM.
Если после щелчка LM по
кривой перетащить курсор, удерживая кнопку мыши, более чем на 5 пикселов, то в
момент отпускания кнопки мыши будет создана дополнительная точка.
4. Для
завершения создания кривой щелкните RM. Для
создания замкнутой кривой щелкните LM в начальной точке.
Появится запрос Close Curve?
(Замкнуть кривую?). Подтвердите запрос, нажав кнопку ОК. Пример кривой Point Curve (Точечная кривая) приведен на рис. 5.13.
5.
Активизируйте теперь кнопку CV Curve
(CV-кривая) и нарисуйте кривую.
При создании CV Curve (CV-кривая) наряду с управляющими вершинами
отображается решетка деформации в виде пунктирных линий (рис. 5.14). Если после
очередного щелчка LM
удерживать кнопку мыши, то можно перетащить созданную вершину в другую точку
окна.
|
Рис. 5.13. Пример
точечной NURBS-кривой
|
|
Рис. 5.14. Пример
CV-кривой с управляющими вершинами
|
Содержание