Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

В-сплайн кривые против традиционных кривых интерполирования

Интерполирующая кривая

 

Многие из Вас работали с интерполирующими кривыми в том или ином виде, " кубическими сплайнами ", используемыми во многих приложениях для интерполирования между дискретным набором заданных точек. Чем эти кривые отличаются от В-сплайнов и почему они не используются в FastShip? Этот пункт рассказывает об основных различиях между использованием интерполирующих кривых и В-сплайнов в отношении проектирования.

Рассмотрим только случай сплайна четвертого порядка или третьей степени, так как эти функции ведут себя как большинство материалов, из которых построено судно. Воспользуемся рисунком 3.6.Рассуждения начнем с пространственных кривых и затем перейдём к поверхностям.

 

Рис.3.6. Интерполирующая кривая против В-сплайна


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

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

Рисунок 3.6 показывает два В-сплайна, каждый состоящий из пяти контрольных точек, у каждого из них серединная точка смещена вертикально вверх. Заметьте совершенно разные полученные кривые. Интерполирующий сплайн действительно проходит через все контрольные точки, но непредсказуемо колеблется между определяющей линией, в то время как В-сплайн фактически не проходит через контрольные вершины, но более гладко повторяет контрольную сеть. Стоит также отметить, что если бы кривая в примере содержала большее количество контрольных точек на конце кривой, полученный В-сплайн остался бы прежним, в то время как интерполирующий сплайн продолжил бы затухающие колебания вплоть до к конца кривой. Отсюда следует два важных свойства В-сплайнов. Первое, при движении определяющей контрольной сетки В-сплайн может перемещаться только в направлении параллельном движению контрольной точки на величину, зависящую от близости к сдвигаемой контрольной точке. Второе, контрольная точка на кривой имеет ограниченный интервал влияния, т.е. при движении одной контрольной точки изменения в форме кривой будут иметь локальный характер. Этих свойств совершенно нет у интерполирующих сплайнов, которые должны проходить через контрольные точки. Фактически, можно показать, что воздействие от движения одной контрольной точки влияет по всей длине кривой, и что изменения формы кривой колебательны по своей природе. Манипулируя контрольной сетью В-сплайна при движении одной точки сети, сдвигается не один узел. Возвращаясь к рис.3.6, можно увидеть, что серединный узел, соответствующий сдвигаемой контрольной точке, сдвинулся на 2/3 расстояния контрольной точки, а два смежных узла сдвинулись параллельно на 1/6 расстояния. Смещения двух последних узлов оказалось достаточно, чтобы кривая сама устранила осцилляции. Проектировщик, использующий интерполирующие сплайны мог бы создать идентичную кривую, сдвинув три узла в заданные положения, но такая точность нежелательна. Аналогично проектировщик мог бы создать кривую путём интерполирования, используя В-сплайны, но для этого ему потребовалось бы создать колебательную сеть.

Неотъемлемой частью всего вышесказанного является предоставление читателю выбора “рабочего инструмента” для построения кривых и поверхностей. Имеющееся в наличии небольшое количество программного обеспечения по морской технике использует и те и другие виды сплайнов. FastShip в качестве инструмента для создания поверхностей выбрал В-сплайны с контрольной сетью с предопределёнными или интерактивно определяющимися граничными условиями. Некоторые программы, использующие В-сплайны сперва конструируют поперечные сечения, а затем сглаживают их в продольном направлении, проводя интерполирующую функцию через контрольные точки сечений. Очевидно, небольшие изменения в поперечных сечениях могут отразиться в колебательном отношении на всей длине спроектированного судна. При этом подходе небольшие изменения никогда не будут локальными.

Дополнительный контроль

 

Теперь обратим внимание на проблему дополнительного контроля над В-сплайн кривой или поверхностью.При использовании FastShip часто случается, что пользователь нуждается в дополнительном контроле над формой поверхности. Очевидным средством для дополнительного контроля является добавление вершин в контрольный многоугольник. Как мы уже знаем, этим подразумевается добавление значений к узловому вектору. В FastShip используются два различных подхода для дополнительного контроля над поверхностью. Первый – это функция insert-net, а второй-функция insert-knot. Рассмотрим вкратце каждый из них.

 

 

Рис. 3.7. Дополнительный контроль посредством функции insert – net.

 

Рис.3.7. показывает использование функции insert-net для дополнительного контроля. Рассмотрим кубический В-сплайн, состoящий из четырёх вершин определяющего многоугольника(единственный интервал) и открытый стандартный узловой вектор. Мы хотим вставить точку в определяющую сеть посередине кривой, чтобы лучше контролировать поверхность в данном месте.

 

Рис.3.8. Дополнительный контроль с помощью функции insert – knot.

 

Функция insert-net сохраняет все существующие вершины многоугольника на своих позициях и вставляет определённым образом новую вершину в многоугольник, а также добавляет значение узла в узловой вектор, чтобы сохранить стандартность узлового вектора. В данном примере новая вершина была вставлена посередине между второй и третьей вершиной, и было добавлено новое значение узла 0.5. (Заметьте, что в FastShip новый узловой вектор будет иметь вид {0,0,0,0,1,2,2,2,2} т.к. FastShip поддерживает интегральные значения узлов). Теперь, если мы будем использовать уже изученные приёмы для вычисления значения кривой с дополнительным контролем, то обнаружим, что она слегка отличается от исходной кривой. Но мы же дополнительно проконтролировали поверхность. Секрет здесь в том, что команда insert-net не сохраняет форму кривой, но сохраняет стандартность узлового вектора.

Теперь обратимся к рис.3.8. для рассмотрения операции insert-knot дополнительного контроля. Начнём всё с того же В-сплайна, показанного в нижней части рисунка. Пользователь определяет в каком месте он хочет вставить узел, в данном примере при значении параметра 0.75. Узловой вектор соответственно изменяется и добавляется новая вершина. Однако в этом случае некоторые вершины многоугольника перемещаются со своих первоначальных позиций. Используется приём, описанный ранее, когда вершины определяются осреднением узлового вектора и новый многоугольник создаётcя, как показано справа на рисунке. Секрет здесь в том, что insert-knot сохраняет форму кривой, но не сохраняет стандартности узлового вектора. Фактически за исключением отдельных случаев единственного интервала узлового вектора невозможно вставить узел в стандартный многоинтервальный узловой вектор, при этом сохранить его стандартность.


Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...