From 1392741f2882b8272359dfd74e6b3d8acb3c114c Mon Sep 17 00:00:00 2001 From: vlad Date: Wed, 19 Apr 2023 14:18:53 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=BF=D1=83=D0=BD=D0=BA=D1=82=209=20=D0=BB?= =?UTF-8?q?=D0=B0=D0=B1=D1=8B=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab2/src/render/render-9.cpp | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/lab2/src/render/render-9.cpp b/lab2/src/render/render-9.cpp index 75d6d84..4e7798e 100644 --- a/lab2/src/render/render-9.cpp +++ b/lab2/src/render/render-9.cpp @@ -61,23 +61,26 @@ void renderScene(Camera& cam) { auto rotate = glm::rotate(glm::mat4(1.0f), rotation_angle, glm::vec3(0, 1, 0)); rotation_angle += 0.0004f; - // тут нужен нужен translate_x+, translate_x-, translate_up - auto translate_xp = glm::translate(glm::mat4(1.0f), glm::vec3(1.7, 0, 0)); + // тут нужен нужен translate_base, scale_base(0.7), translate_x-, translate_up, scale(1/0.7) + // translate_base = центр 3 = радиус + ((радиус * 0.7) * 2) + (радиус * 0.7 * 0.7) = 1.0 + (0.7 * 2) + (0.7 * 0.7) + auto translate_base = glm::translate(glm::mat4(1.0f), glm::vec3(1.0 + (0.7 * 2) + (0.7 * 0.7), 0, 0)); + auto scale_base = glm::scale(glm::mat4(1.0f), glm::vec3(0.7 * 0.7, 0.7 * 0.7,0.7 * 0.7)); + auto translate_xm = glm::translate(glm::mat4(1.0f), glm::vec3(-1.7, 0, 0)); auto translate_up = glm::translate(glm::mat4(1.0f), glm::vec3(0, 1, 0)); - auto scale_0_7 = glm::scale(glm::mat4(1.0f), glm::vec3(0.7, 0.7,0.7)); + auto scale_1_7 = glm::scale(glm::mat4(1.0f), glm::vec3(1.0 / 0.7, 1.0 / 0.7,1.0 / 0.7)); // базовая матрица, = центр маленького снеговика + вращение - auto base = translate_xp * translate_xp * rotate; - - // первый снеговик - drawSnowman(base * translate_xm * translate_xm * translate_up); - - // второй снеговик - drawSnowman(base * translate_xm * scale_0_7 * translate_up); + auto base = translate_base * scale_base; // * rotate // третий снеговик - drawSnowman(base * scale_0_7 * scale_0_7 * translate_up); + drawSnowman(base * translate_up); + + // второй снеговик + drawSnowman(base * scale_1_7 * translate_xm * translate_up); + + // первый снеговик + drawSnowman(base * scale_1_7 * translate_xm * scale_1_7 * translate_xm * translate_up); } int loadResources() {