Центральный Дом Знаний - Основы работы со сплайнами

Информационный центр "Центральный Дом Знаний"

Заказать учебную работу! Жми!



ЖМИ: ТУТ ТЫСЯЧИ КУРСОВЫХ РАБОТ ДЛЯ ТЕБЯ

      cendomzn@yandex.ru  

Наш опрос

Я учусь (закончил(-а) в
Всего ответов: 2639



Основы работы со сплайнами

Как мы выяснили в предыдущих уроках, даже взятые за основу примитивы позволяют путем ряда нехитрых манипуляций создавать разные трехмерные тела — от абстрактных объектов до полностью реальных моделей. Еще большие перспективы открываются при использовании в качестве исходных объектов форм (Shapes), которые представляют собой набор двумерных или трехмерных кривых. Формы объединяют два типа объектов — Splines (Сплайны) и NURBS Curves (Кривые NURBS). Рассмотрим в этом уроке сплайны, так как они популярнее и чаще используются в моделировании. Однако мы изучим только самые простые приемы работы со сплайнами, а вопросы сплайнового моделирования оставим для следующих уроков.

Что такое сплайны

Сплайны (Spline — кусочно-полиномиальная функция) — это двумерные геометрические объекты, которые совершенно самостоятельны и могут служить основой для построения более сложных трехмерных тел. Внешне сплайны представляют собой разнообразные линии, форма линии определяется типом вершин, через которые она проходит. Сплайнами могут быть как простейшие геометрические фигуры: прямоугольники, звезды, эллипсы и пр., так и сложные ломаные или кривые, а также контуры текстовых символов.

Основными элементами сплайнов являются вершины (Vertex) и сегменты (Segment). Вершинами называют точки, расположенные на сплайне, при этом первая вершина, обозначающая начало сплайна, отмечается квадратиком белого цвета. Под сегментом принято понимать участок линии сплайна, ограниченный двумя соседними вершинами, — сегменты могут быть как прямо-, так и криволинейными отрезками. Вершины сплайна различаются по типу, от которого зависит степень кривизны прилегающих к данным вершинам сегментов сплайна. Всего выделяют четыре типы вершин (рис. 1):

  1. Corner (Угловая) — вершина, в которой сплайн имеет излом, а примыкающие к ней сегменты лишены кривизны.
  2. Smooth (Сглаженная) — вершина, через которую кривая сплайна проводится с плавным изгибом, а кривизна прилегающих к вершине сегментов одинакова с обеих сторон.
  3. Bezier (Безье) — вершина, напоминающая сглаженную и отличающаяся от нее возможностью управления степенью кривизны обоих сегментов. Последнее осуществляется благодаря наличию в вершине касательных векторов, ограниченных на концах маркерами в виде квадратиков зеленого цвета и называемых ручками Безье. Перемещая ручки Безье, можно изменять направление, в соответствии с которым сегменты сплайна входят в вершину и выходят из нее, а изменяя расстояние от маркеров до вершины — регулировать степень кривизны сегментов сплайна. У вершин данного типа ручки Безье связаны между собой, и перемещение одной из них автоматически вызывает перемещение второй.
  4. Bezier Corner (Безье угловая) — вершина, имеющая касательные векторы, позволяющие управлять степенью кривизны сегментов, однако, в отличие от вершин Bezier, у вершин Bezier Corner касательные векторы не связаны друг с другом и перемещение одного из маркеров не зависит от перемещения другого.

 

Рис. 1. Типы вершин сплайнов

Рис. 1. Типы вершин сплайнов

Сегменты также различаются по типу: Curve (Кривая) или Line (Линия). Выбрав типа Curve, можно получить криволинейные сегменты, если вершины являются гладкими или имеют тип Безье, в случае же угловых вершин даже при установке типа Curve сегмент останется линейным. Выбор типа Line приводит к игнорированию типа вершин, в результате чего сегмент данного типа всегда выглядит линейным.

В началоВ начало

Создание сплайнов

Вначале мы поэкспериментируем с простейшими сплайнами, представляющими собой обычные геометрические фигуры. Активизируйте категорию объектов Shapes (Формы) командной панели Create (Создание), в списке разновидностей объектов укажите тип Splines (Сплайны). Это приведет к появлению на панели группы инструментов, соответствующих типам сплайнов (рис. 2). Для построения стандартных сплайнов используются инструменты Rectangle (Прямоугольник), Circle (Окружность), Ellipse (Эллипс), Arc (Дуга), Donut (Кольцо), NGon (N-угольник), Star (Звезда), Text(Текст), Helix (Спираль) и Section (Сечение). Их построение аналогично созданию примитивов, а расположение вершин и характер любого из названных объектов устанавливаются параметрами в момент создания в панели Create (Создание), а позже — в панели Modify (Изменение). Инструмент Line (Линия) предназначен для создания сплайнов нестандартного вида и работает несколько иначе.

 

Рис. 2. Инструменты группы Splines

Рис. 2. Инструменты группы Splines

Геометрические фигуры

Для примера попробуйте создать несколько стандартных сплайнов в виде геометрических фигур, например многоугольник, звезду и спираль, как показано на рис. 3. Попробуйте провести рендеринг, выбрав команду Rendering=>Renderer и щелкнув на кнопке Render. Подробно с данным процессом мы познакомимся позднее, а пока просто поясним, что рендеринг обычно проводится на заключительном этапе работы, он необходим для визуализации созданной модели и его основная задача — сделать модель максимально приближенной к действительности. Проведя рендеринг, никакого изображения в открывшемся окне вы не увидите — дело в том, что по умолчанию сплайны не рендеризируются. Для того чтобы сделать их видимыми во время рендеринга выделите первый сплайн, активизируйте панель Modify (Изменение) и в свитке Rendring (Рендеринг) установите флажок Renderable (Визуализируемый). Аналогичную операцию проведите в отношении двух других сплайнов и вновь выполните рендеринг — сплайны станут видимыми (рис. 4).

 

Рис. 3. Исходный вид группы стандартных сплайнов

Рис. 3. Исходный вид группы стандартных сплайнов

Рис. 4. Результат рендерннга

Рис. 4. Результат рендерннга

Пока все сплайны имеют одинаковую толщину, что несложно исправить, изменив у каждого из них в свитке Rendring (Рендеринг) значение параметра Thickness (Толщина). Обратите внимание на свиток Parameters (Параметры), в котором определяются основные параметры каждого типа сплайнов: размеры, число вершин и пр. Для тренировки увеличьте толщину каждого из сплайнов, измените число вершин у многоугольника и звезды и увеличьте количество витков на спирали, например так, как показано на рис. 5, 6 и 7. Обратите внимание, что в окнах проекций отразились все изменения, кроме увеличения толщины сплайнов, которая осталась прежней, — ничего страшного, все так и должно быть, поскольку по умолчанию опция Display Render Mesh (Показать визуализируемый каркас) отключена. Убедиться в том, что толщина реально изменилась, можно проведя рендеринг (рис. 8) или просто включив данный флажок. Поэкспериментируйте с прочими параметрами сплайнов, поперемещайте их относительно друг друга и попытайтесь на их основе создать единую композицию, например такую, как продемонстрирована на рис. 9.

 

Рис. 5. Панель Modify для звезды

Рис. 5. Панель Modify для звезды

Рис. 6. Панель Modify для спирали

Рис. 6. Панель Modify для спирали

Рис. 7. Панель Modify для многоугольника

Рис. 7. Панель Modify для многоугольника

Рис. 8. Вид сцены после рендерннга

Рис. 8. Вид сцены после рендерннга

Рис. 9. Композиция из сплайнов

Рис. 9. Композиция из сплайнов

Текст

Для создания текста перезагрузите файл командой File=>Reset (Файл=>Сбросить), на панели Create (Создание) вновь выберите тип Splines(Сплайны) и активизируйте инструмент Text (Текст). В открывшемся свитке параметров создания сплайна введите нужный текст, выберите шрифт и установите его параметры (рис. 10). Затем щелкните в одном из окон проекций — это приведет к появлению фрагмента текста (рис. 11).

 

Рис. 10. Панель Create для текста

Рис. 10. Панель Create для текста

Рис. 11. Текст в окне проекции Perspective

Рис. 11. Текст в окне проекции Perspective

Перед проведением рендеринга переместите текст так, чтобы он весь оказался в поле зрения, активизируйте панель Modify (Изменение), в свиткеRendring (Рендеринг) установите флажок Renderable (Визуализируемый) и увеличьте значение параметра Thickness (Толщина), например до 10. Проведите рендеринг и убедитесь, что даже такие простые манипуляции позволяют получить интересный вариант трехмерного текста (рис. 12).

 

Рис. 12. Текст после рендеринга

Рис. 12. Текст после рендеринга

Линии

Создавая предыдущие виды сплайнов, мы не обращали внимание на вершины и сегменты — более того, даже не вспоминали про разные типы вершин. Со сплайнами-линиями все обстоит иначе — в зависимости от особенностей построения кривой они будут дополняться вершинами разного типа. Щелчки левой кнопкой в окне проекции при выбранном инструменте Line (Линия) будут приводить к появлению новой угловой точки (Corner), а перемещение мыши при нажатой левой кнопке — к появлению вершины Безье (Bezier). Данный принцип создания вершин установлен по умолчанию, и при необходимости его можно изменить в свитке Creation Method (Метод Создания) на панели Create (Изменение) — рис. 13. Для этого достаточно сменить положение переключателей Initial Type (Тип вершин при щелчке) и Drag Type (Тип вершин при перетаскивании). Отметим, что в большинстве случаев не стоит менять методы создания вершин (чтобы не путаться) — гораздо удобнее взять за основу устанавливаемый по умолчанию принцип и вначале создавать контуры только с угловыми вершинами, а затем изменять тип у тех вершин, у которых это необходимо сделать.

 

Рис. 13. Свиток Creation Method

Рис. 13. Свиток Creation Method

Щелчок правой кнопкой приводит к завершению рисования сплайна из линий. При попытке поставить вершину в месте нахождения начальной точки сплайна на экране появляется вопрос «Close Spline?» («Закрыть сплайн?») — утвердительный ответ приведет к получению замкнутого контура, в противном случае контур окажется разорванным и его граничные вершины можно будет независимо перемещать.

Теоретически существует и второй метод создания сплайна из линий — режим Keyboard Entry (Ввод с клавиатуры), который предполагает ввод координат (X, Y и Z) каждой из вершин вручную с клавиатуры (рис. 14). Непосредственное добавление каждой новой вершины осуществляется кнопкой Add Point (Добавить вершину), кнопка Finish (Закончить) позволяет закончить создание сплайна, а кнопка Close (Замкнуть) создает сегмент, соединяющий первую вершину с последней.

 

Рис. 14. Свиток Keyboard Entry

Рис. 14. Свиток Keyboard Entry

Чтобы закрепить навыки работы со сплайнами-линиями, попробуйте создать сплайн, представленный на рис. 15, и сохраните его на диске — в дальнейшем мы превратим его в рюмку. Обратите внимание, что данный сплайн содержит только угловые вершины. Удобнее всего начинать создание контура с правой нижней вершины (на контуре она отмечена белым квадратиком) и, учитывая, что большинство сегментов соединяются друг с другом под прямым углом, удерживать нажатой при построении данных фрагментов контура клавишу Shift (это обеспечит формирование идеальных углов).

 

Рис. 15. Заготовка для рюмки

Рис. 15. Заготовка для рюмки

Составные сплайновые формы

Два типа стандартных сплайновых форм — Donut (Кольцо) и Text (Текст) — принципиально отличаются от всех остальных типов сплайнов тем, что содержат более одного сплайна в форме и потому относятся к составным формам. Кольцо содержит два круговых сплайна. Число простых сплайнов, составляющих текстовый объект, как минимум совпадает с числом входящих в него букв, а может быть и больше, если в тексте присутствуют буквы, состоящие из нескольких сплайнов. Основным преимуществом составного сплайна по сравнению с обычным сплайном является возможность выполнять операции сразу над всеми частями сплайновой формы одновременно, что быстрее и удобнее. Но дело не только в этом — к составным формам приходится прибегать и в других случаях, например при необходимости проведения в отношении сплайнов булевой операции.

Для превращения простого сплайна в составной необходимо убрать флажок рядом с кнопкой Start New Shape (Начать новую форму) — рис. 16. После этого любой новый сплайн становится составной частью уже существующей сплайновой формы. Включение названного флажка отменит данный режим, и следующие сплайны уже будут образовывать свои формы.

 

Рис. 16. Установка запрета на создание новой формы

Рис. 16. Установка запрета на создание новой формы

Попробуем создать имитацию простой решетки в виде составного сплайна — такие решетки сплошь и рядом используют при создании разнообразных ограждений. Для начала создайте сплайн типа Rectangle (рис. 17), а затем перейдите в режим создания составной формы, отключив флажок Start New Shape (Начать новую форму). Добавьте к прямоугольнику дугу инструментом Arc (рис. 18). Обратите внимание, что для совмещения концов дуги с контуром прямоугольника удобнее воспользоваться ручным изменением параметров From (От) и To (В), определяющих начальную и конечную точки дуги. Не включая флажка Start New Shape, дополните форму серией линий примерно как на рис. 19.

 

Рис. 17. Исходный прямоугольник

Рис. 17. Исходный прямоугольник

Рис. 18. Появление дуги

Рис. 18. Появление дуги

Рис. 19. Появление группы линий

Щелкните на свободной части любого окна проекций, чтобы снять выделение с решетки, а затем выделите ее инструментом Select Object(Выделение объекта) — решетка выделится вся целиком, что говорит о ее единстве. Это позволит настроить параметры сразу для всех входящих в форму сплайнов, что очень удобно. Активируйте панель Modify (Изменение), в свитке Rendring (Рендеринг) установите флажок Renderable(Визуализируемый) и увеличьте значение параметра Thickness (Толщина). Проведите рендеринг — возможно, полученная решетка будет иметь примерно такой вид, как на рис. 20. Однако решетка получилась неидеальной, поскольку разбить дугу на одинаковое число сегментов на глаз проблематично. Для подобных целей лучше использовать возможности автоматического разбиения сегментов на заданное число равных частей, но это предполагает редактирование формы на уровне подобъектов, поэтому к вопросу создания решетки мы еще вернемся.

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

 

Рис. 20. Решетка

Рис. 20. Решетка

В началоВ начало

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

Сплайны могут редактироваться на двух уровнях — на уровне параметрической формы и на уровне подобъектов: вершин, сегментов, а также сплайнов, если речь идет о составном сплайне.

Редактирование на уровне параметрической формы, или объекта, осуществляется обычным образом при активировании панели Modify(Изменение) и позволяет присоединять к сплайну другие сплайны и изменять ряд параметров сплайна, заданных при его создании (рис. 21).

 

Рис. 21. Панель Modify — редактирование на уровне объекта

Рис. 21. Панель Modify — редактирование на уровне объекта

Редактирование сплайнов на уровне подобъектов позволяет превратить даже самый простой сплайн в сложный объект практически любой конфигурации, так как число доступных преобразований не идет ни в какое сравнение с перечнем возможностей при редактировании на уровне объекта в целом (рис. 22). Чтобы сплайн можно было редактировать на уровне подобъектов, он должен быть преобразован в объект типа Editable Spline (Редактируемый сплайн) при помощи команды Convert To=>Convert to Editable Spline (Конвертировать в=>Конвертировать в редактируемый сплайн). Такой объект перестает быть параметрическим — его уже нельзя будет редактировать на уровне параметров, изменяя ширину, высоту, радиус и пр., но зато он может модифицироваться на уровне вершин и сегментов.

 

Рис. 22. Панель Modify — редактирование на уровне подобъектов

Рис. 22. Панель Modify — редактирование на уровне подобъектов

Выбор нужного уровня подобъектов осуществляется щелчком по соответствующей кнопке в свитке Selection панели Modify. Для выбора самих подобъектов используются обычные инструменты выделения: Select Object (Выделить объект), Select and Move (Выделить и передвинуть), Select and Scale (Выделить и масштабировать), Select and Rotate (Выделить и повернуть) и Selection Region (Форма области выделения) для выделения областей определенной формы. При необходимости последовательного выделения нескольких объектов при выделении удерживают нажатой клавишу Ctrl.

Основные инструменты изменения геометрии подобъектов: вершин (Vertex), сегментов (Segment) и сплайнов в целом (Spline) — находятся в свитке Geometry (Редактировать геометрию), который становится доступным при активировании панели Modify (Изменение). Управление типом подобъектов осуществляется через контекстное меню.

Изменение типа подобъектов

На практике чаще всего приходится менять типы вершин, выбирая нужный тип из четырех возможных: Corner (Угловая), Smooth (Сглаженная),Bezier (Безье) и Bezier Corner (Безье угловая). Гораздо реже требуется изменять типы сегментов или сплайнов — здесь есть всего два варианта:Curve (Кривая) и Line (Линия). Смена типа производится через контекстное меню, вызываемое при нажатии правой кнопки на выделенных объектах, при этом текущий тип всегда отмечен галочкой, а для его изменения достаточно выбрать любой другой тип подобъекта.

Для примера инструментом Line (Линия) создайте ломаную из двух отрезков (рис. 23), прощелкав левой кнопкой мыши все три ее вершины, — обратите внимание, что в обычном режиме вершины ломаной не выделены специальными значками. Перейдите в режим редактирования вершин — это приведет к отображению на ломаной трех ее вершин: точка начала окажется отмеченной белым квадратиком, а две другие точки — крестиками (рис. 24). Щелкните на средней вершине правой кнопкой мыши и увидите в открывшемся контекстном меню галочку у слова Corner (рис. 25) — это доказывает, что вершина действительно угловая. Измените тип данной вершины на Bezier (Безье) — вид контура тут же изменится (рис. 26).

 

Рис. 23. Исходная ломаная — все вершины угловые

Рис. 23. Исходная ломаная — все вершины угловые

Рис. 24. Ломаная в режиме редактирования вершин

Рис. 24. Ломаная в режиме редактирования вершин

Рис. 25. Вид контекстного меню для средней вершины

Рис. 25. Вид контекстного меню для средней вершины

Рис. 26. Ломаная — центральная вершина превратилась в вершину Безье

Рис. 26. Ломаная — центральная вершина превратилась в вершину Безье

Редактирование на уровне вершин

При редактировании на уровне вершин наибольший интерес в свитке Geometry (Редактировать геометрию) представляют следующие операции:

  • Refine (Уточнить) — позволяет добавлять дополнительные вершины без изменения контура сплайна, что может потребоваться для последующего разрыва сплайна в данной точке;
  • Break (Разбить) — позволяет разорвать контур в любой выделенной вершине, при этом образуются две совпадающие, но все же раздельные вершины;
  • Insert (Вставить) — дает возможность вставить вершину в любой точке сплайна, сразу же переместить ее и продолжить добавление новых вершин;
  • Delete (Удалить) — используется для удаления выделенных вершин;
  • Weld (Слить) — отвечает за объединение двух выделенных концевых или совпадающих вершин в одну с учетом значения параметра Weld Threshold (Порог слияния), задающего расстояние, при котором совпадающие вершины будут объединяться;
  • Fuse (Приблизить) — позволяет приблизить выделенные точки друг к другу, применение данной операции полезно перед свариванием вершин при помощи операции Weld;
  • Connect (Соединить) — осуществляет соединение двух вершин на концах разомкнутого сплайна отрезком прямой;
  • Fillet (Скруглить) — позволяет скруглять любые углы;
  • Chamfer (Фаска) — отвечает за снятие прямой фаски с любого угла.

Для примера создайте сплайн в виде звезды (рис. 27). Чтобы получить доступ к редактированию вершин, превратите его в редактируемый сплайн, щелкнув правой кнопкой мыши на сплайне и выбрав команду Convert To=>Convert to Editable Spline (Конвертировать в=>Конвертировать в редактируемый сплайн). Последовательно при нажатой клавише Ctrl выделите все внешние вершины звезды, а затем щелкните на кнопке Fillet и скруглите вершины так, чтобы звезда превратилась в цветок (рис. 28). Выделите все внутренние вершины и сведите их в одну точку, щелкнув на кнопке Fuse, а затем объедините при помощи операции Weld (рис. 29). И напоследок попробуйте сделать лепестки более округлыми при помощи операцииFillet (рис. 30). Полученный результат показан на рис. 31.

 

Рис. 27. Исходная звезда

Рис. 27. Исходная звезда

Рис. 28. Результат скругления внутренних вершин

Рис. 28. Результат скругления внутренних вершин

Рис. 29. Сведение внутренних вершин

Рис. 29. Сведение внутренних вершин

Рис. 30. Скругление лепестков

Рис. 30. Скругление лепестков

Рис. 31. Цветок

Рис. 31. Цветок

А теперь более сложное задание: откройте ранее созданный файл с заготовкой для рюмки. Перейдите в режим редактирования вершин, активизировав панель Modify (Изменение) и щелкнув на кнопке Vertex (Вершины). Масштабируйте изображение, а затем проверьте, все ли вершины находятся на своих местах, и при необходимости переместите ту или иную вершину инструментом Select and Move (Выделить и переместить) так, чтобы все сегменты находились относительно друг друга под нужными углами.

Выделите указанную на рис. 32 вершину и измените ее тип на Bezier Corner (Безье угловая), указав его в контекстном меню. Измените степень кривизны прилегающего к данной вершине сегмента примерно так, как показано на рис. 33. Выделите указанную на рис. 34 вершину и скруглите соответствующий угол, щелкнув на кнопке Fillet (Скруглить) и постепенно изменяя значение параметра в поле соответствующего счетчика или перемещая вершину мышью (рис. 35). Аналогичным образом скруглите угол при вышерасположенной вершине (рис. 36). Превратите указанную на рис. 37 вершину в вершину типа Bezier Corner (Безье угловая), а затем измените кривизну прилегающих к вершине сегментов в соответствии с рис. 38.

 

Рис. 32. Превращение обычной угловой вершины в угловую вершину Безье

Рис. 32. Превращение обычной угловой вершины в угловую вершину Безье

Рис. 33. Результат изменения кривизны сегмента, прилегающего к угловой вершине Безье

Рис. 33. Результат изменения кривизны сегмента, прилегающего к угловой вершине Безье

Рис. 34. Вершина, угол размещения которой нужно скруглить

Рис. 34. Вершина, угол размещения которой нужно скруглить

Рис. 35. Скругление первого угла

Рис. 35. Скругление первого угла

Рис. 36. Скругление второго угла

Рис. 36. Скругление второго угла

Рис. 37. Вершина, которую нужно превратить в угловую вершину Безье

Рис. 37. Вершина, которую нужно превратить в угловую вершину Безье

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

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


                                                                                                                                                                                 [ 1 ]


Loading

Календарь

«  Сентябрь 2018  »
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
24252627282930

Архив записей

Друзья сайта

  • Заказать курсовую работу!
  • Выполнение любых чертежей
  • Новый фриланс 24