主题:请教一个OPENGL问题
绘制单页双曲面。单页双曲面方程是x*x/(a*a)+y*y/(b*b)-z*z/(c*c)=1.
a,b,c是常量。这里我分别设成了3,2,1。这是半个曲面的绘制。运行总是一片白。检查了很久没发现问题。请指点下。谢谢。
float a=3.0;
float b=2.0;
float c=1.0;
glPushMatrix();
glShadeModel(GL_SMOOTH);//启用光滑明暗渲染
glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);//采用面的绘制模式
// glScalef(1/a,1/b,1/c);
glBegin(GL_QUAD_STRIP);
//主要问题在下面吧。这样描述点有什么问题?
for(float y=-1.001f;y<0.901f;y+=0.1f)
{
for(int i=0;i<10;i++)
{
float x;
x=(i-5)*sqrt((1+y*y/(c*c))*a*a)/5;
glVertex3f(x,y,
sqrt(b*b*(1+y*y/(c*c)-x*x/(a*a))));
x=sqrt((1+(y+0.1)*(y+0.1)/(c*c))*a*a)/5*(i-5);
glVertex3f(x,y+0.1,
sqrt(b*b*(1+(y+0.1)*(y+0.1)/(c*c)-x*x/(a*a))));
}
}
glEnd();
glPopMatrix();
不知道发的版块对不对?斑竹别删哦。谢谢了
a,b,c是常量。这里我分别设成了3,2,1。这是半个曲面的绘制。运行总是一片白。检查了很久没发现问题。请指点下。谢谢。
float a=3.0;
float b=2.0;
float c=1.0;
glPushMatrix();
glShadeModel(GL_SMOOTH);//启用光滑明暗渲染
glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);//采用面的绘制模式
// glScalef(1/a,1/b,1/c);
glBegin(GL_QUAD_STRIP);
//主要问题在下面吧。这样描述点有什么问题?
for(float y=-1.001f;y<0.901f;y+=0.1f)
{
for(int i=0;i<10;i++)
{
float x;
x=(i-5)*sqrt((1+y*y/(c*c))*a*a)/5;
glVertex3f(x,y,
sqrt(b*b*(1+y*y/(c*c)-x*x/(a*a))));
x=sqrt((1+(y+0.1)*(y+0.1)/(c*c))*a*a)/5*(i-5);
glVertex3f(x,y+0.1,
sqrt(b*b*(1+(y+0.1)*(y+0.1)/(c*c)-x*x/(a*a))));
}
}
glEnd();
glPopMatrix();
不知道发的版块对不对?斑竹别删哦。谢谢了