在openGL中绘制三维线图的尝试

在openGL中绘制三维线图的尝试,opengl,graphics,3d,Opengl,Graphics,3d,我在x轴和y轴上有一条2D正弦曲线,我想把它变成3D。我希望最终结果看起来像这样。我想我是通过围绕y轴旋转曲线的顶点并以某种方式将它们连接在一起来实现的。有人对如何操作有什么建议吗?您可以使用距中心的距离而不是x位置作为正弦函数的输入。大概是这样的: z = sin (sqrt ((x * x) + (y * y))); glBegin (GL_LINES); for (x = xmin; x <= xmax; x++) { for (y = ymin; y <= ymax

我在x轴和y轴上有一条2D正弦曲线,我想把它变成3D。我希望最终结果看起来像这样。我想我是通过围绕y轴旋转曲线的顶点并以某种方式将它们连接在一起来实现的。有人对如何操作有什么建议吗?

您可以使用距中心的距离而不是x位置作为正弦函数的输入。大概是这样的:

z = sin (sqrt ((x * x) + (y * y)));
glBegin (GL_LINES);
for (x = xmin; x <= xmax; x++)
{
    for (y = ymin; y <= ymax; y++)
    {
        z = sin (sqrt ((x*x) + (y*y)));
        glVertex3f (x, y, z);
    }
}
glEnd ();
然后可以跨x轴和y轴行进,插入值,并在值之间绘制线,如下所示:

z = sin (sqrt ((x * x) + (y * y)));
glBegin (GL_LINES);
for (x = xmin; x <= xmax; x++)
{
    for (y = ymin; y <= ymax; y++)
    {
        z = sin (sqrt ((x*x) + (y*y)));
        glVertex3f (x, y, z);
    }
}
glEnd ();
glBegin(GL_行);

对于(x=xmin;x,Wikibooks上的OpenGL编程书有一个演示如何使用现代OpenGL在2D和3D中绘制函数的示例。这听起来可能是您感兴趣的

基本上,要打印的函数在NxN点中求值,结果保存到纹理中,然后将其用作顶点着色器中的Z坐标