diff options
| -rw-r--r-- | task06/Geom.txt | 48 | ||||
| -rw-r--r-- | task06/Guschin/Figure.h | 8 |
2 files changed, 52 insertions, 4 deletions
diff --git a/task06/Geom.txt b/task06/Geom.txt new file mode 100644 index 0000000..d9b4316 --- /dev/null +++ b/task06/Geom.txt @@ -0,0 +1,48 @@ +# установка камеры в точку (10,5,5) направленной в точку (10,5,0) +# с направлением вверх (0,1,0) +camera 10 5 5 10 5 0 0 1 0 +# установка окна с углом обзора 90 градусов +# с соотношением сторон 2:1 на расстоянии 5 от наблюдателя (от камеры) +# расстояние до горизонта - 20 +screen 90 2 5 20 + +# первый рисунок +model 1.5 1 0 3 2 1 # центр в точке (1.5, 1), размеры 3x2 +color 0 255 0 # цвет зеленый +thickness 3 # толщина линии 3 +path 5 # путь из четырех ребер (пять вершин) +0.5 0.5 0 # левый нижний угол +0.5 1.5 0 # левый верхний угол +2.5 1.5 0 # правый верхний угол +2.5 0.5 0 # правый нижний угол +0.5 0.5 0 # левый нижний угол + +# преобразования и размещения по описанию +pushTransform # сохранить отправную точку +rotate -45 0 0 1 # поворот на -45 градусов +pushTransform # сохранить преобразование поворота +scale 2.25 # масштабирование до большого прямоугольника +translate 5 5 0 # перенос центра рисунка в точку (5,5) +figure # запомнить положение и ракурс первого рисунка +popTransform # откатились к преобразованию поворота +scale 0.75 # масштабирование до малого прямоугольника +translate 15 1 0 # установить в позицию нижнего малого прямоугольника +figure # запомнить положение и ракурс второго экземпляра рисунка +translate 0 8 0 # передвинуться в позицию (15,9) из (15,1) +figure # запомнить положение и ракурс третьего экземпляра рисунка +popTransform # откатились к стартовой позиции + +# второй рисунок +model 1 1.25 0 2 2.5 1 # параметры рисунка с треугольником +color 255 0 0 # цвет красный +path 4 # четыре точки в маршруте +0.5 0.5 0 # нижний левый угол +1 2 0 0 # верхний угол +1.5 0.5 0 # нижний правый угол +0.5 0.5 0 # нижний левый угол + +# преобразования и размещения по описанию +rotate 90 0 0 1 # поворот на 90 градусов +scale 1.5 # масштабирование до синего прямоугольника +translate 15 5 0 # сдвиг в нужную позицию +figure # запомнить положение и ракурс рисунка diff --git a/task06/Guschin/Figure.h b/task06/Guschin/Figure.h index cf2a63e..4f2400c 100644 --- a/task06/Guschin/Figure.h +++ b/task06/Guschin/Figure.h @@ -5,11 +5,11 @@ class path { public: - std::vector<vec2> vertices; + std::vector<vec3> vertices; vec3 color; float thickness; - path(std::vector<vec2> verts, vec3 col, float thickn) + path(std::vector<vec3> verts, vec3 col, float thickn) { vertices = verts; color = col; @@ -20,8 +20,8 @@ public: class model { public: std::vector<path> figure; - mat3 modelM; - model(std::vector<path> fig, mat3 mat) { + mat4 modelM; + model(std::vector<path> fig, mat4 mat) { figure = fig; modelM = mat; } };
\ No newline at end of file |