【发布时间】:2021-01-09 21:49:24
【问题描述】:
我目前正在尝试以递归方式在正方形内绘制一个正方形,该正方形将适合其各自的正方形。用户将输入正方形缩放和旋转的次数,并选择角度。
例如输入5个45度角的分割,会产生:
Image scaled by sin(45) and rotated at a 45 degree angle 5 times
现在这没问题,但它只适用于 45 度角。我将如何获得不同角度的比例?假设以 19 度角输入 5 的除法?
下面是我现在的代码(它在 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;
}
【问题讨论】:
标签: c++ opengl rotation trigonometry glm-math