поверхня nurbs

поверхня NURBS

Перейшовши до однорідних координатах задають точок, з рівняння В-сплайна ми отримали рівняння NURBS-кривої. Точно так же рівняння поверхні NURBS виходить з В-сплайновой поверхні:

де Рij - вектори задають точок з компонентами х, у і z, a hij - однорідні координати задають точок. Зверніть увагу, що вузлові значення і діапазони значень параметрів збігаються із зазначеними в формулі (7.32).

Рівняння (7.40) стає рівнянням По-сплайновой поверхні при hij = 1. Покажіть самостійно, що при hij = 1 знаменник (7.40) тотожно дорівнює одиниці. Отже, рівняння В-сплайновой поверхні є окремим випадком рівняння NURBS-поверхні. Поверхня NURBS до того ж дозволяє точно описати квадратичні поверхні, такі як циліндр, конус, сфера, параболоїд і гіперболоїд. Ці поверхні називаються квадратичними, тому що їх рівняння мають ступінь 2 по u і v. Рівняння NURBS-поверхні часто використовується для внутрішнього уявлення квадратичних поверхонь в системах геометричного моделювання.

Проілюструємо використання рівнянь NURBS-поверхні в системах об'ємного моделювання на декількох прикладах. Перший приклад: поверхня, отримана трансляцією кривої (рис. 7.6). Припустимо, що транслюється крива задана NURBS-рівнянням. Це припущення не накладаються ніяких обмежень, оскільки рівняння будь-якої кривої з розглянутих нами може бути перетворено до форми NURBS. Нехай порядок цієї кривої l. вузлові значення tp (p = 0. 1. т + /), що задають точки Рj (т + 1 штук).

Гранична крива поверхні NURBS являє собою NURBS-криву з відповідними задають точками, які є крайніми вершинами задає багатогранника поверхні. Порядок і вузлові граничної кривої збігаються з тими ж характеристиками поверхні у відповідному напрямку. Ми вже показали, що цією властивістю володіють По-сплайнові поверхні. Отже, що задають точки, порядок і вузлові значення поверхні в одному з напрямків, що збігається з напрямком зміни параметра кривої, виходять з характеристик транслюється кривої, оскільки вона є однією з граничних кривих. Зокрема, задають точками на одному з країв поверхні будуть точки Рj (рис. 7.6). Далі, порядок поверхні в напрямку v буде дорівнює l. а вузлові значення дорівнюватимуть tp (якщо напрямки параметрів вибрати так, як показано на рис. 7.6).

Однак нам потрібна інформація про характеристики поверхні в напрямку і. Передбачається, що напрямок і збігається з напрямком трансляції (рис. 7.6), а значить, в цьому напрямку досить лінійного рівняння. Отже, порядок NURBS-кривої в цьому напрямку буде дорівнює 2 і задають точок теж буде дві. Вузлові значення в напрямку і будуть рівні 0, 0, 1,1, а наборів вузлових точок буде два. Один набір, як уже зазначалося, виходить з Ру, а другий набір виходить трансляцією Рj на відстань d в напрямку трансляції. Однорідні координати для обох наборів будуть збігатися з hj транслюється кривої. Отже, координати x, y u z задають точок Рi, j і однорідні координати hi, j описуються наступними виразами:

де d - відстань трансляції, а а - одиничний вектор у напрямку трансляції.

Рівняння NURBS-поверхні може бути записано так, як показано нижче. Обчислення здійснюється підстановкою потрібних значень параметрів:

NURBS-рівняння (7.43) може використовуватися для подання будь-якої поверхні, отриманої трансляцією кривої. Наприклад, це NURBS-рівняння може бути застосовано для опису циліндричної поверхні, отриманої трансляцією півкола, що лежить в площині ху, уздовж осі z (рис. 7.7). Спочатку нам потрібно задати NURBS-уявлення півкола. Скористаємося результатами прикладу 6.6. Задають точки матимуть такі координати:

порядок кривої повинен бути рівний 3, а її вузлові значення рівні 0, 0, 0, 1, 1, 2, 2, 2. Координати задають точок циліндричної поверхні будуть такими:

де Р0,0. Р0,1. Р0,2. P0,3 і Р0,4 позначають задають точки нижньої дуги, а Р1,0. Р1,1 P1,2. Р1,3 і P1.4 - задають точки верхньої дуги; k - одиничний вектор у напрямку осі z. NURBS-рівняння циліндричної поверхні виходить підстановкою Pij і hij в рівняння (7.43) з урахуванням того, що l = 3 і т = 4. Вузлові значення в напрямку v рівні 0, 0, 0, 1, 1, 2, 2, 2. а в напрямку і вони рівні 0, 0, 1, 1.

Розглянемо ще один приклад - поверхня обертання. Нехай обертається крива лежить в площині xz, вісь обертання збігається з віссю z, а напрямок кривої збігається з напрямком параметра v створюваної поверхні (рис. 7.8). Припустимо, що ми маємо справу з NURBS-кривої порядку l з вузловими значеннями tp (р = 0, 1. т + l) і задають точками Рj (т + 1 штук) і hj (однорідні координати задають точок). Можна припустити, що кожна задає точка Рj розділиться на дев'ять задають точок, що визначають круговий поперечний переріз (рис. 7.8).

Детальний опис цього методу наводиться в роботі [126]. Дев'ять задають точок поверхні мають такі координати:

У рівняння поверхні може бути записано у вигляді:

Зверніть увагу, що порядок поверхні в напрямку і дорівнює 3, тому що ступеня 2 достатньо для представлення окружності. Вузлові значення Nj, l виходять з NURBS-вистави обертається кривої, а вузлові значення Ni, 3 слідують з вузлових значень уявлення півкола: 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4.

Для визначення координат x, y і z точки на NURBS-поверхні, ми повинні підставити відповідні їй значення параметрів і = u0 і v = v0 в рівняння (7.44). Тоді ми зможемо помітити, що чисельник і знаменник в цьому виразі мають той же вигляд, що і в рівнянні В-сплайновой поверхні. Тому ми можемо скористатися методом для обчислення В-сплайнів поверхонь, правда, з невеликою зміною для обліку однорідних координат: при обчисленні чисельника hi, jPi, j підставляється замість Рi, j. а при обчисленні знаменника hi, j підставляється замість Рi, j.

Крім того, можна обчислити похідні NURBS-поверхні, застосувавши методи, використані для обчислення В-сплайновой поверхні і її похідних. Перевірку цього твердження надаємо читачеві як вправа.

Дивіться також

Схожі статті