|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
NURBS Curves and Surfaces
NURBS routines provide general and powerful descriptions of curves and surfaces in two and three dimensions. They're used to represent geometry in many computer-aided mechanical design systems. The GLU NURBS routines can render such curves and surfaces in a variety of styles, and they can automatically handle adaptive subdivision that tessellates the domain into smaller triangles in regions of high curvature and near silhouette edges.
Manage a NURBS object:
GLUnurbsObj* gluNewNurbsRenderer (void); void gluDeleteNurbsRenderer (GLUnurbsObj *nobj); void gluNurbsCallback (GLUnurbsObj *nobj, GLenum which, void (*fn)( ));
Create a NURBS curve:
void gluBeginCurve (GLUnurbsObj *nobj); void gluEndCurve (GLUnurbsObj *nobj); void gluNurbsCurve (GLUnurbsObj *nobj, GLint nknots, GLfloat *knot, GLint stride, GLfloat *ctlarray, GLint order, GLenum type);
Create a NURBS surface:
void gluBeginSurface (GLUnurbsObj *nobj); void gluEndSurface (GLUnurbsObj *nobj); void gluNurbsSurface (GLUnurbsObj *nobj, GLint uknot_count, GLfloat *uknot, GLint vknot_count, GLfloat *vknot, GLint u_stride, GLint v_stride, GLfloat *ctlarray, GLint uorder, GLint vorder, GLenum type);
Define a trimming region:
void gluBeginTrim (GLUnurbsObj *nobj); void gluEndTrim (GLUnurbsObj *nobj); void gluPwlCurve (GLUnurbsObj *nobj, GLint count, GLfloat *array, GLint stride, GLenum type);
Control NURBS rendering:
void gluLoadSamplingMatrices (GLUnurbsObj *nobj, const GLfloat modelMatrix[16], const GLfloat projMatrix[16], const GLint viewport[4]); void gluNurbsProperty (GLUnurbsObj *nobj, GLenum property, GLfloat value); void gluGetNurbsProperty (GLUnurbsObj *nobj, GLenum property, GLfloat *value);
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
NURBS ИЗГИБАЕТ и Всплывает
ПРОГРАММЫ NURBS обеспечивают общие и мощные описания кривых и поверхностей в двух и трех измерениях. Они имеют обыкновение, чтобы представлять геометрию в много автоматизированных механических проектых системах. Программы GLU NURBS могут предоставлять такие кривые и поверхности в ряде стилей, и они могут автоматически прооперировать адаптивное разбиение, которое складывает мозаику область в меньшие треугольники в регионах высокой кривизны и около краев силуэта.
Управляйте объектом NURBS:
GLUnurbsObj* gluNewNurbsRenderer (ПУСТОТА); аннулируйте gluDeleteNurbsRenderer (GLUnurbsObj *nobj); аннулируйте gluNurbsCallback (GLUnurbsObj *nobj, GLenum какое, пустота (*fn)( ));
Создайте кривую NURBS:
аннулируйте gluBeginCurve (GLUnurbsObj *nobj); аннулируйте gluEndCurve (GLUnurbsObj *nobj); аннулируйте gluNurbsCurve (GLUnurbsObj *nobj, БЛЕСК nknots, GLfloat *узел, большой шаг БЛЕСКА, GLfloat *ctlarray, порядок БЛЕСКА, тип GLenum);
Создайте поверхность NURBS:
аннулируйте gluBeginSurface (GLUnurbsObj *nobj); аннулируйте gluEndSurface (GLUnurbsObj *nobj); аннулируйте gluNurbsSurface (GLUnurbsObj *nobj, БЛЕСК uknot_count, GLfloat *uknot, БЛЕСК vknot_count, GLfloat *vknot, БЛЕСК u_stride, БЛЕСК v_stride, GLfloat *ctlarray, БЛЕСК uorder, БЛЕСК vorder, тип GLenum);
Определите приспосабливающий регион:
аннулируйте gluBeginTrim (GLUnurbsObj *nobj); аннулируйте gluEndTrim (GLUnurbsObj *nobj); аннулируйте gluPwlCurve (GLUnurbsObj *nobj, счет БЛЕСКА, GLfloat *массив, большой шаг БЛЕСКА, тип GLenum);
Управляйте предоставлением NURBS:
аннулируйте gluLoadSamplingMatrices (GLUnurbsObj *nobj, const GLfloat modelMatrix[16], const GLfloat projMatrix[16], const БЛЕСК viewport[4]); аннулируйте gluNurbsProperty (GLUnurbsObj *nobj, собственность GLenum, величина GLfloat); аннулируйте gluGetNurbsProperty (GLUnurbsObj *nobj, собственность GLenum, GLfloat *величина);
| |
|
|
| |