Поиск

NURBS кривые для судостроителей.

Обновлено: авг. 19


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

Попробуем понять:

- Чем NURBS отличается от обычных сплайнов?

- Какой NURBS лучше?

- Что делать с весами?

- Как определить какая часть кривой изменится при перемещении точки контрольного многоугольника?

- Почему точки контрольного многоугольника не лежат на кривой?

- Что удобнее? Изменять непосредственно кривую или многоугольник?

- Как многоугольник связан с кривой?


Начнем с начала.

NURBS кривая представляет собой набор сегментов параметрических полиномиальных кривых состыкованных между собой ( куда уж тут деться от математики? ). Каждая точка NURBS может быть вычислена в зависимости от параметра U. Думаю, что разбираться что находится внутри Fx, Fy, Fz мы не будем. Примем это как черный ящик.

X = Fx(U)

Y = Fy(U)

Z = Fz(U)

Как видно из этих уравнений, координаты точки на NURBS кривой не зависят друг от друга и зависят только от параметра U. То есть мы можем рисовать кривую любой формы, в том числе с петлями. В этом есть преимущество NURBS перед традиционными математическими сплайнами. Другим преимуществом можно назвать удобство визуализации таких кривых. При вычислении точек с равным шагом по параметру, кривая выглядит плавной и красивой. Недостатком можно назвать то, что при необходимости вычислить точку (или точки) на кривой c фиксированной координатой, потребуется численное решение. Это означает что точка будет вычислена с заданной точностью. Обращаю на это внимание, так как аспект точности важен при передаче данных из одной программы в другую.


Этот NURBS пока выглядит непонятно и абстрактно.

Форма любой NURBS кривой определяется следующими параметрами:


Степень и порядок кривой.

NURBS состоит набора полиномиальных сегментов заданной степени. От степени зависит гладкость стыковки сегментов кривой между собой, области изменения NURBS при изменении положения одной контрольной точки и минимальное количество возможных точек контрольного полигона. Минимально возможное количество контрольных точек вычисляется как Степень + 1. Это и называется в разной литературе порядком кривой. Это нужно знать, чтоб встретить во всеоружии разработчиков всяких САПР, которые запугиваю несчастных инженеров подобными терминами. Какая степень лучше? Наверное та, которая выше. Кривая более плавная и красивая. Наверное, это то, что нам нужно?

Ниже я привел пример NURBS степени от 1 до 5, представленный на том же самом наборе контрольных точек. Посмотрите, как влияет степень на форму кривой.


Первая степень – кривая совпадает с контрольным многоугольником. Не интересно. Не стоило даже городить огород. Проще использовать многоугольник.


Вторая степень – кривая уже выглядит как кривая. Обратите внимание на интересное свойство – кривая касается каждой линии контрольного многоугольника. С такой кривой уже можно работать, но – участки такой кривой стыкуются только по касательной. Кривизна такой кривой изменяется скачками от участка к участку. Недостаточная плавность такой кривой будет визуально заметна.


Третья степень – кривая более гладкая. Выполняется непрерывность касательных и кривизны. Эту степень чаще всего используют при проектировании.


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

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


Контрольный многоугольник.

Наконец-то мы пришли к одному из самых важных свойств NURBS – контрольному многоугольнику кривой. Собственно говоря, это то, за что этот класс кривых и