Выполнить задание по 3D графике OpenGL

2 000 руб. за проект
08 декабря 2021, 22:23 • 2 отклика • 29 просмотров
Необходимо выполнить задания по 3D графики (С#, OpenGL)
Задание 1:
Дана кривая Безье B порядка 3 с управляющими точками


P0(0, 4), P1(-2, -1), P2(4, 2), P3(2, 2).


Изобразите эскизно эту кривую
в плоскости X=4.0.


Создайте класс представляющий
цилиндрическую поверхность на основе
кривой в плоскости X=4.0 и составленной из
nh (параметр) уровней и ns (параметр) сегментов.


Напишите код визуализации поверхности
B


Визуализируйте сцену, добавив
постоянное вращение поверхности B вокруг
осей Y


t – parametru, 0≤t≤1, P0, P1,…, Pn – puncte de control

Задание 2:
NG = 25
Что за объект нарисует приведенный
ниже фрагмент программы с использованием
библиотеки OpenGL:













const GLdouble v[27][3]={


-NG, -NG, NG,


0, -NG, NG,


NG, -NG, NG,


-NG, -NG, 0,


0, -NG, 0,


NG, -NG, 0,


-NG, -NG, -NG,


0, -NG, -NG,


NG, -NG, -NG,


-NG, 0, NG,


0, 0, NG,


NG, 0, NG,


-NG, 0, 0,












0, 0, 0,


NG, 0, 0,


-NG, 0, -NG,


0, 0, -NG,


NG, 0, -NG,


-NG, NG, NG,


0, NG, NG,


NG, NG, NG,


-NG, NG, 0,


0, NG, 0,


NG, NG, 0,


-NG, NG, -NG,


0, NG, -NG,


NG, NG, -NG};



glBegin(GL_TRIANGLE_STRIP);


glVertex3dv(v[6]); glVertex3dv(v[24]);


glVertex3dv(v[8]); glVertex3dv(v[26]);


glEnd();





glBegin(GL_TRIANGLE_STRIP);


glVertex3dv(v[0]); glVertex3dv(v[2]);


glVertex3dv(v[18]); glVertex3dv(v[20]);


glEnd();



Под NG (порядковым номером) подразумевается число 25.

В первом задании, нужно описать фигуру (должен получиться куб но без двух сторон). Номер 25 влияет только на его размер.
Во втором задании нужно создать класс кривой Безье 3-ого порядка и нарисовать используя координаты их задания.

Файлы