OpenGL Nurbs: поиск координат узла

Мне нужно нарисовать контрольные точки и узлы кривой NURBS в OpenGL. С контрольными точками проблем нет, так как они определяются своими координатами. Однако у меня немного больше проблем с узлами.

У меня есть массив узлов, взятый функцией gluNurbsCurve, определенный следующим образом.

GLfloat knots[KNOTCOUNT] = {0.00, 0.00, 0.00,
                            0.25,
                            0.50, 0.50,
                            0.75,
                            1.00, 1.00, 1.00}

Есть ли простой способ получить координаты этих 5 узлов? Судя по координатам контрольных точек, я полагаю? Или это нетривиально? Помимо координат и весов контрольных точек, у меня также есть значения STRIDE и ORDER.

Я подумал, что это возможно, так как gluNurbsCurve-функция может рисовать кривую на основе этих значений.

Или я полностью упускаю понятие узлов?


person Joost    schedule 14.10.2012    source источник
comment
Я бы рекомендовал вам рисовать узлы отдельно, как 5 маленьких квадратов.   -  person Ivan Kuckir    schedule 15.10.2012
comment
Это все мои намерения. Тем не менее, у меня нет координат x и y указанных узлов.   -  person Joost    schedule 15.10.2012
comment
У вас есть 10 массивов с плавающей запятой в вашем вопросе. Каждые 2 поплавка - это координаты узла X и Y, я прав?   -  person Ivan Kuckir    schedule 15.10.2012
comment
Неа. Функция gluNurbsCurve принимает массив узлов в порядке возрастания, где многократное появление одного узла определяет множественность одного узла. Вектор узла описан здесь, на Википедии   -  person Joost    schedule 15.10.2012


Ответы (2)


Если вы прочтете статью, которую вы разместили на NURBS, вы узнаете, что узлы — это скорее вес, чем точка.

"Вектор узлов – это последовательность значений параметров, определяющая, где и как контрольные точки влияют на NURBS-кривую".

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

person rioki    schedule 17.10.2012
comment
Вы были правы, мое представление об узлах было немного неверным. Я использовал подход командной строки для редактирования вектора узла, а не для визуализации. - person Joost; 23.10.2012

Взгляните на эту веб-страницу: http://www.ibiblio.org/e-notes/Splines/Basis.htm

Это дает хорошее объяснение векторов узлов и даже позволяет вам попробовать поиграть с векторами узлов в Java-апплете (переместите маленькие узлы вверху правой стороны рисунков). Также доступен исходный код для Java-апплетов.

Эта страница является частью полного интерактивного введения в сплайны: http://www.ibiblio.org/e-notes/Splines/Intro.htm

person Mortennobel    schedule 19.10.2012