Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [Пересланное сообщение]
- Даша Кошель, 6 ноября в 16:31
- #include <iostream>
- #include <vector>
- #include <glut.h>
- GLUnurbsObj* nobj;
- // массив точек определяющего многоугольника
- GLfloat ctlarray[][4] = { { -0.6, -0.2, 0,1 },
- { -0.6, -0.2, 1,1 },
- { -0.4, 0.2, 0,1 },
- { -0.4, 0.2, 1,1 },
- { -0.2, -0.2, 0,1 },
- { -0.2, -0.2, 1,1 },
- { 0.0, 0.2, 0,1 },
- { 0.0, 0.2, 1,1 },
- { 0.2, -0.2, 0,1 },
- { 0.2, -0.2, 1,1 },
- { 0.4, 0.2, 0,1 },
- { 0.4, 0.2, 1,1 },
- { 0.6, -0.2, 0,1 },
- { 0.6, -0.2, 1,1 } };
- void init(void)
- {
- glClearColor(1.0, 1.0, 1.0, 1.0);
- nobj = gluNewNurbsRenderer();
- gluNurbsProperty(nobj, GLU_SAMPLING_TOLERANCE, 25.0);
- }
- void Display()
- {
- GLfloat knot1[] = { 0.0,0.0,0.0,0.0,0.0,1.0,2.0,3.0,3.0,3.0,3.0,3.0 };
- GLfloat knot2[] = { 0,0,1,1 };
- glClear(GL_COLOR_BUFFER_BIT);
- //glLineWidth(1);
- //glPointSize(5);
- //glColor3f(0.0, 0.5, 1.0);
- //glBegin(GL_POINTS);
- //for (int i = 0; i< 7; i++) {
- // glVertex3f(ctlarray[i][0], ctlarray[i][1], ctlarray[i][2]);
- //}
- //glEnd();
- glColor3f(0.0, 1.0, 1.0);
- glRotatef(0.15, 0.2, 0.5, 0);
- glLineWidth(1);
- //gluNurbsCurve(nobj, 12, knot1, 4, &ctlarray[0][0], 5, GL_MAP1_VERTEX_3);
- gluNurbsSurface(nobj, 12, knot1, 4, knot2, 4 * 2, 4, &ctlarray[0][0], 5, 2, GL_MAP2_VERTEX_4);
- // glFlush();
- glutPostRedisplay();
- glutSwapBuffers();
- }
- int main()
- {
- glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
- glutInitWindowSize(1100, 1100);
- glutInitWindowPosition(1, 1);
- glutCreateWindow("1");
- init();
- glutDisplayFunc(Display);
- glutMainLoop();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement