В настоящее время я пытаюсь рекурсивно нарисовать квадрат внутри квадрата, который будет соответствовать соответствующему квадрату. Пользователь введет, сколько раз квадрат будет масштабироваться и вращаться, и выберет угол.
Например, при вводе 5 делений с углом 45 градусов будет получено:
Изображение масштабировано с помощью sin(45) и повернуто на угол 45 градусов 5 раз
Теперь это хорошо, но это работает только для угла 45 градусов. Как мне получить масштаб другого угла? Скажем, деление на 5 вводится под углом 19 градусов?
Ниже приведен мой код прямо сейчас (он в OpenGL, но все еще вопрос триггера/математики):
glm::vec3 vector = transformObject(1.0f, Z_AXIS, 0.0f, glm::vec3(0.0f, 0.0f, 0.0f));
glDrawArrays(GL_LINE_LOOP, 0, 4);
float scale = 1.0f;
float SinOfAngle = glm::sin(glm::degrees(inputtedAngle));
for (int i = 0; i < userInputTimes; i++)
{
scale *= SinOfAngle;
vector = transformObject(scale , Z_AXIS, inputtedAngle, glm::vec3(0.0f, 0.0f, 0.0f));
glDrawArrays(GL_LINE_LOOP, 0, 4);
inputtedAngle += inputtedAngle;
}