- Написать программу, рисующую проекцию трёхмерного каркасного объекта.
- Рисовать грани объекта с помощью доступных функций рисования отрезка в координатах окна. При этом можно использовать OpenGL;
- При запуске программы объект сразу должно быть хорошо виден;
- Дать возможность возможность вращать фигуру (2 степени свободы) и изменять параметры фигуры;
- Не рисовать для выпуклых фигур нелицевые грани;
- Нарисовать оси системы координат;
- Параметры, которые нельзя использовать для настройки текущей (выбранной) фигуры, должны быть скрыты или отключены;
- Программа не должна лагать, у неё не должна течь память.
Первые две фигуры у всех одинаковы:
- N-угольная призма;
- Поверхность
z = A * (x*x + y*y)
или параболоид.
Третья фигура -- своя для каждого варианта:
Вариант | Фигура |
---|---|
1 | Сектор конуса |
2 | Четырехугольная призма |
3 | Шестиугольная призма |
4 | Треугольная пирамида |
5 | Сектор цилиндра, «кусок торта» |
6 | Усеченный гиперболоид |
7 | Выпуклая оболочка тора |
8 | Шаровой сектор, «долька арбуза» |
9 | Усеченная пятиугольная призма |
10 | Слой выпуклой линзы |
11 | Шестиугольная пирамида |
12 | Выпуклая линза |
13 | Четырехугольная пирамида |
14 | Пятиугольная пирамида |
15 | Пятиугольная призма |
16 | Усеченная треугольная призма |
17 | Усеченный конус |
18 | Слой шара |
19 | Усеченная выпуклая линза |
20 | Усеченный цилиндр |
21 | Усеченная шестиугольная призма |
22 | Сектор выпуклой линзы |
23 | Усеченная четырехугольная призма |
24 | Усеченный эллипсоид |
25 | Треугольная призма |
26 | Сектор параболоида |
27 | Усеченный параболоид |
Что можно ввести в качестве параметров?
- Высоту фигуры;
- Длину ребра основания;
- Радиус;
- Угол разворота (для долек и прочего);
- Что-нибудь ещё, что позволяет фантазия и что при этом сохраняет узнаваемый вид фигуры.