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() {