2012-03-03 64 views
1

我在x和y轴上有2D正弦曲线,并且我想使它成为3D。我想最终的结果看起来像this。我想我是通过绕y轴旋转曲线的顶点并将它们连接在一起来做到这一点。有没有人有关于如何去做的建议?试图在openGL中绘制3D线条图

回答

2

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

z = sin (sqrt ((x * x) + (y * y))); 

然后,您可以通过X轴和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(); 
1

OpenGL编程的书有一个scientific arc,演示如何使用现代OpenGL在2D和3D中绘制函数。听起来像the fourth part可能是你感兴趣的。

基本上,你想绘制的函数在NxN点中计算并且结果保存到纹理中,然后将纹理用作顶点中的Z坐标着色器。