на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Формирование математической модели корпуса теплохода-площадки в программе FastShip6
отя выгода от использования параметрического задания налицо‚ оно имеет и свои недостатки. Возвращаясь к приведённому выше примеру‚ первый недостаток заключается в следующем: чтобы оценить местоположение точки‚ лежащей на линии ‚в пространстве нужно использовать два уравнения‚ а не одно‚ как в случае явного задания прямой. Поэтому в вычислительном отношении параметрическое задание сложнее. Второе‚ мы часто хотим вычислить у по данному х или х по данному у и ничего не знать про параметр u. При параметрическом задании сперва вычисляется u по заданному х‚ а потом уже у. Это не всегда является кратчайшим путём.

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

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

Обратите внимание на сходство форм определяющего многоугольника и кривой. В некотором отношении определяющий многоугольник можно рассматривать как карикатуру или увеличенное изображение кривой, которую он определяет. Обретя небольшой опыт, вы сможете легко отличать В-сплайн от определяющего многоугольника. Кроме того, вершины - это ручки, которые позволяют пользователю управлять формой кривой. Управляя положениями вершин можно управлять формой кривой. Хотя это не совсем строго , иногда для начинающих пользователей полезно думать о кривой, как о присоединённой к вершинам магнитами.

Следующая концепция, которой нужно уделить внимание для полного рассмотрения математики NURBS, касается узлового вектора. Проще говоря, узловой вектор - это перечень значений параметра u, который служит для определения положения вершин определяющего многоугольника в параметрическом пространстве. Для кривой в примере 3.2 значения узлов обозначены кружочками на кривой. Имеется множество способов, которыми можно рассматривать значимость узлового вектора. Значения узлового вектора определяют границы интервалов кривой, то есть те места кривой, где заканчивается интервал одного многочлена и начинается интервал другого. Для В-сплайна четвертого порядка (кубического) на рис.3.2, часть кривой с левого края до первого внутреннего узла - кубическая кривая, в то время как часть от этого узла до следующего - совсем другая кубическая функция. И напоследок отметим ещё одну деталь. Зачастую вызывают затруднения термины порядок и степень кривой. В контексте нашего рассуждения, степень кривой - это самая высокая целая степень многочлена, задающего кривую. Порядок - это степень плюс один и происходит из того, что в простейшей функции многочлена типа f (x) = ax3 + bx2 + сх + d число неизвестных коэффициентов на одно больше, чем самая высокая степень многочлена, из-за того что постоянная d имеет нулевую степень. Следовательно, кубический В-сплайн имеет третью степень, но - четвертый порядок.

3.3 Пример простого кубического В-сплайна

В качестве первого примера возьмём кубический (четвёртого порядка) В-сплайн, показанный на рис.3.3. Определяющий многоугольник состоит из четырёх вершин, обозначенных В0 ,В1 ,В2 и В3 ,соединённые пунктирными линиями.

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

Рис.3.3 Пример простого кубического В-сплайна

Как выглядит параметрическое пространство этой кривой, т.е. как изменяется параметр u вдоль кривой? Мы вправе назначить любой интервал изменения параметра u, но с тем условием, чтобы на этом интервале кривая монотонно возрастает при переходе из начала в конец кривой. Кроме того, нам важны не сами значения параметра, а его изменения вдоль кривой. Для удобства примем, что u изменяется от 0 до 1 при переходе из одного конца кривой в другой.

Затем, что такое узловой вектор для данной кривой? Т.к. мы знаем, что кривая состоит из единственного кубического интервала и что значения узлового вектора определяют границы интервалов, то можно догадаться, что узловой вектор выглядит как [0, 1]. Близко, но не совсем правильно. В текущей версии FastShip используется т.н. открытый узловой вектор (противопоставление периодическому узловому вектору, использовавшемуся в FastShip 3 и более ранних версиях). Открытый узловой вектор имеет свойство, заключающееся в том, что существует многозначность узловых значений в начале и в конце узлового вектора. Т.о. узловой вектор в данном примере имеет вид [0,0,0,0,1,1,1,1]. Значение многозначности узлов - сделать так, чтобы первая и последняя вершины многоугольника и начало и конец кривой соответственно совпадали. Сформулируем это важное свойство для В-сплайнов с открытым узловым вектором: кривая интерполирует между крайними точками определяющего многоугольника.

Наконец, как можно вычислить значение точки кривой по данным определяющему многоугольнику и узловому вектору? Чтобы продемонстрировать это, давайте вычислим значение точки при значении u=0.5. Этот процесс состоит из серии повторяющихся линейных интерполяций. Т.к. кривая третьей степени, то потребуется три серии последовательных интерполяций. Сперва проинтерполируя каждую из трёх наклонных определяющего многоугольника посередине длины (потому что данное значение параметра лежит посередине наклонной), получим три новых точки, отмеченные ромбиками на рис.3.3. Теперь проинтерполируем две новых наклонных, образованные соединением трёх точек, посередине длины и получим две новые точки. И, наконец, проинтерполируем наконную, полученную соединением двух точек, и получим искомое значение при u=0.5.

3.4 Пример простого квадратичного В-сплайна

Рассмотрим пример другого В-сплайна. Рассмотрим квадратичный (третьего порядка) В-сплайн, показанный на рис.3.4, определённый тремя вершинами определяющего многоугольника. Как мы уже поняли из предыдущего примера, чтобы определить квадратичную кривую нужно три точки, и что в данном случае существует единственный квадратичный интервал. Открытый узловой вектор будет иметь вид [0,0,0,1,1,1]. Возможно, вы заметили, что существует связь между числом вершин определяющего многоугольника и числом узлов узлового вектора. Для В-сплайнов в общем случае, число узлов равняется числу вершин определяющего многоугольника плюс порядок кривой. Как было замечено в предыдущем примере, многозначность узлов нужна для того, чтобы концы кривой совпадали с крайними вершинами определяющего многоугольника

Рис.3.4 Пример простого квадратичного В-сплайна

Вычислим значение кривой при параметре u=0.5. Как уже упоминалось, этот процесс состоит из серии линейных интерполяций. Проинтерполируем первую наклонную посередине длины. То же самое проделаем и со второй наклонной. Получим две точки. Соединяя их, получим новую наклонную. Проинтерполируем ёе посередине длины, получим значение кривой при u=0.5. Заметьте, что пришлось всего две интерполяции, чтобы вычислить значение кривой, и в общем случае нужно столько интерполяций, какова степень кривой. Подобную процедуру можно провести для вычисления значения кривой при любом значении u. Конечно, это всего лишь графический метод решения подобной задачи. Существуют также математические методы для решения этой проблемы (такие как метод Кокса-ДеБура), которые и используются в FastShip. Однако, графический метод полезен для более полного понимания математики NURBS, а также для демонстрации ряда важных свойств NURBS.

3.5 Пример простого линейного В-сплайна

Рис.3.5. Пример простого линейного В-сплайна

В качестве последнего примера рассмотрим линейный В-сплайн, показанный на рис.3.5. Определяющий многоугольник состоит из трёх вершин, обозначенных B0, B1, и B2. Что можно сказать об этой линейной кривой? Мы знаем, что нужно две точки, чтобы определить линию, так что здесь должно быть два линейных интервала. В узловом векторе нужно иметь три узла, чтобы определить два интервала, один - в начале, другой - в конце, третий - между первыми двумя. Для многих поверхностей, с которыми вы будете работать в FastShip, используется стандартный узловой вектор. Это значит, что внутренний узел находится на равном расстоянии, как от первого узла, так и от последнего. В дальнейшем мы будем рассматривать нестандартные узловые векторы. Следовательно, в данном примере узловой вектор будет иметь вид [0,0.5,1]. Тогда открытый узловой вектор с соответствующей многозначностью будет иметь вид [0,0,0.5,1,1]. Чтобы вычислить значение кривой при u=0.25 нужно рассмотреть наклоную B0B1, имеющие соответственно значения 0 и 0.5, и интерполировать эту наклонную посередине длины. Выясняется, что фактически для линейного В-сплайна определяющий многоугольник и линейный В-сплайн совпадают.

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

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

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

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

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

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

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

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

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

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

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

Страницы: 1, 2, 3, 4, 5



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.