gluNurbsCurve - визначення форми NURBS-кривої.

C-специфікація

void gluNurbsCurve (GLUnurbs* nurb,
 	            GLint knotCount,
 	            GLfloat * knots,
 	            GLint stride,
 	            GLfloat * control,
 	            GLint order,
 	            GLenum type) ;

 

Параметри

nurb вказує об'єкт NURBS-кривої (повинен містити значення створене за допомогою функції gluNewNurbsRenderer).

knotCount вказує кількість вузлів у параметрі knots. Параметр knotCount еквівалентний кількості контрольних точок плюс напрямок.

knots вказує масив неспадаючих значень вузлів кількості knotCount.

stride вказує зміщення (у якості дійсного числа типу одинарної точності) між контрольними точками кривої.

control передає вказівник на масив контрольних точок. Координати повинні узгоджуватися з параметром type, описаним нижче.

order вказує порядок NURBS кривої. Параметр order рівний ступінь+1, оскільки кубічна крива має 4 порядок.

type вказує тип кривої. Якщо дана крива визначена між парою функцій gluBeginCurve/gluEndCurve, тоді тип може бути будь-яким коректним одно-вимірним типом обчислювача (на подобі GLU_MAP1_VERTEX_3 або GL_MAP1_COLOR_4). Якщо дана функція викликається між відповідними викликами пари gluBeginTrim/gluEndTrim, єдиними коректними типами являються GLU_MAP1_TRIM_2 і GLU_MAP1_TRIM_3.

Опис

Використовуйте функцію gluNurbsCurve для опису NURBS-кривої.

Якщо функція gluNurbsCurve розміщена між парою функцій gluBeginCurve/gluEndCurve, вона використовується для опису кривої для малювання. Кожна координата розміщення, накладання текстур і кольору встановлюються за допомогою виклику окремої функції gluNurbsCurve між викликами пари gluBeginCurve/gluEndCurve. Дозволено виконувати тільки один виклик gluNurbsCurve для кожної координати кольору, розміщення і текстурнування між парою викликів функцій gluBeginCurve/gluEndCurve. Необхідно виконати саме один виклик для опису розміщення кривої (параметр type з значенням GLU_MAP1_VERTEX_3 або GLU_MAP1_VERTEX4).

Коли функція gluNurbsCurve з'являється між викликами пари функцій gluBeginTrim/gluEndTrim, вона використовується для опису обрізаної кривої на NURBS-площині. Якщо параметр type містить значення GLU_MAP1_TRIM_2, тоді вона описує криву у двовимірному (u, v) параметричному просторі. Якщо він містить значення GLU_MAP1_TRIM_3, тоді він опису криву у двовимірному гомогенному (u, v і w) просторі параметрів. Перегляньте функцію gluBeginTrim для більш детального опису про обрізані криві.

Приклад

Наступна послідовність команд малює текстуровану NURBS-криву з нормалями:

gluBeginCurve (nobj) ;
   gluNurbsCurve (nobj, ..., GL_MAP1_TEXTURE_COORD_2) ;
   gluNurbsCurve (nobj, ..., GL_MAP1_NORMAL) ;
   gluNurbsCurve (nobj, ..., GL_MAP1_VERTEX_4) ;
gluEndCurve (nobj) ;

 

Нотатки

Для визначення обрізаних кривих, які добре малюються, використовуйте функцію gluPwlCurve.

Перегляньте також

gluBeginCurve, gluBeginTrim, gluNewNurbsRenderer, gluPwlCurve

Оригінал

https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/gluNurbsCurve.xml