Контрольные точки на поверхностях нурбов

Так что в последнее время я много читал о nurbs и полностью понимаю кривые nurbs (даже написал небольшую библиотеку для него). Но у меня проблемы с поверхностями. Я вижу, что мне нужно два набора контрольных точек. Моя проблема в том, что разница между точками в этих двух наборах? Кто-нибудь может кратко объяснить это или дать мне ссылку, которая делает?

2 ответа

Решение

Я думаю, что мой любимый способ понимания NURBS-поверхностей (если вы уже понимаете NURBS-кривые) - это бусы на проволоке.

Итак, давайте посмотрим на гораздо более простой пример поверхности Безье (я полагаю, если вы понимаете кривые NURBS, вы понимаете кривые Безье).

Кубическая кривая Безье имеет 4 контрольные точки. Представьте себе кривую Безье, которая является просто гладкой горизонтальной кривой. Вы можете вычислить любую точку на этой кривой по заданному значению параметра (обычно это называется t). Просто подключите t к параметрическому уравнению кривой, и точка будет создана.

Теперь представьте, что у вас есть 4 горизонтальные кривые Безье, каждая из которых находится над другой. Если вы подключите одно и то же значение параметра ко всем 4 кривым, вы получите 4 балла, по одному на каждую кривую. Это бусы на проводах. Давайте назовем значение параметра для горизонтальных кривых 's'.

Возьмите эти 4 "бусинки" точки и рассматривайте их как контрольные точки вертикальной кривой. Оцените эту кривую по другому значению параметра (это мы назовем 't', как обычно), и оно даст вам точку. Эта точка на поверхности. В частности, это точка P(s,t).

Таким образом, учитывая сетку контрольных точек 4x4, вы можете использовать шарики на проводе для вычисления точек на поверхности. По мере изменения s бусины сметают различные кривые вдоль проволоки. Множество всех этих кривых является поверхностью.

Вы можете сделать то же самое с кривыми Nurbs... вам просто нужен вектор узла для s, другой вектор узла для t и сетка контрольных точек.

Для поверхности NURBS вам не нужны два набора контрольных точек, вам нужна двумерная сетка или сетка контрольных точек. Эта сетка будет иметь n строк и m столбцов, и каждая точка сетки будет иметь координаты x, y и z, а также значение w, вес NURBS для этой точки.

Другие вопросы по тегам