summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--task06/Geom.txt48
-rw-r--r--task06/Guschin/Figure.h8
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