我想知道如何使用这些函数在 OpenGL 中生成曲线:
x(t) = sin(t) + 1/2 sin(5t) + 1/4 cos(2,3t)
y(t) = cos(t) + 1/2 cos(5t) + 1/4 sin(2,3t)
这是一个大学练习,我用圆圈做了一些事情,但是用曲线我遇到了问题。
我没有掌握构建曲线的方法,我尝试构建一个代码来生成一条简单的曲线来看看它是如何工作的,但它完全错误,因为它生成了一些非常奇怪的东西。我想看一个具有此函数的曲线的简单示例,以了解我必须如何开始构建像打印一样的绘图。
测试代码:
void exerciseTwo(){
write("Exercise Two", -5, 18);
float x = 0, y = 0, t =0;
glPushMatrix();
glBegin(GL_LINE_STRIP);
for(t = -10.0; t < 10.0; t += 0.1){
x = sin(t) + ((1/2) * sin(5 * t)) + ((1/4) * cos(2.3 * t));
glVertex2f(x, t);
}
for(t = -10.0; t < 10.0; t += 0.1){
y = cos(t) + ((1/2) * cos(5 * t)) + ((1/4) * sin(2.3 * t));
glVertex2f(t, y);
}
glEnd();
glPopMatrix();
write("Press 0 (zero) to come back.", -10, -18);
}
我的方法正确吗?
最佳答案
编辑答案:您应该将曲线的 x 和 y 部分表示为 1 个顶点,否则您会得到不相关的结果。这是更正:
glPushMatrix();
glBegin(GL_LINE_STRIP);
for(t = -10.0; t < 10.0; t += 0.1){
x = sin(t) + ((1/2) * sin(5 * t)) + ((1/4) * cos(2.3 * t));
y = cos(t) + ((1/2) * cos(5 * t)) + ((1/4) * sin(2.3 * t));
glVertex2f(x, y);
}
glEnd();
glPopMatrix();
注意:正弦和余弦函数的参数为弧度类型不是度数。如果结果仍然不是您想要的,请考虑此警告。
关于c - 如何在 OpenGL 中使用函数生成曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29775268/