Professional Documents
Culture Documents
6
6
GL2;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
gl.glPushAttrib(GL2.GL_CURRENT_BIT);
if((i+j)%2==0) gl.glColor3f(0.0f,0.0f,0.0f);
gl.glBegin(GL2.GL_QUADS);
alpha=2.0*Math.PI*i/n;
beta=2.0*Math.PI*j/m;
xs=r1*Math.cos(alpha);
ys=0;
zs=r1*Math.sin(alpha);
gl.glNormal3d(Math.sin(beta)*Math.cos(alpha),Math.cos(beta),Math.sin(beta)*Math.sin
(alpha));
gl.glVertex3d(xs+r2*Math.sin(beta)*Math.cos(alpha),ys+r2*Math.cos(beta),zs+r2*Math.
sin(beta)*Math.sin(alpha));
alpha=2.0*Math.PI*(i-1)/n;
beta=2.0*Math.PI*j/m;
xs=r1*Math.cos(alpha);
ys=0;
zs=r1*Math.sin(alpha);
gl.glNormal3d(Math.sin(beta)*Math.cos(alpha),Math.cos(beta),Math.sin(beta)*Math.sin
(alpha));
gl.glVertex3d(xs+r2*Math.sin(beta)*Math.cos(alpha),ys+r2*Math.cos(beta),zs+r2*Math.
sin(beta)*Math.sin(alpha));
alpha=2.0*Math.PI*(i-1)/n;
beta=2.0*Math.PI*(j-1)/m;
xs=r1*Math.cos(alpha);
ys=0;
zs=r1*Math.sin(alpha);
gl.glNormal3d(Math.sin(beta)*Math.cos(alpha),Math.cos(beta),Math.sin(beta)*Math.sin
(alpha));
gl.glVertex3d(xs+r2*Math.sin(beta)*Math.cos(alpha),ys+r2*Math.cos(beta),zs+r2*Math.
sin(beta)*Math.sin(alpha));
alpha=2.0*Math.PI*i/n;
beta=2.0*Math.PI*(j-1)/m;
xs=r1*Math.cos(alpha);
ys=0;
zs=r1*Math.sin(alpha);
gl.glNormal3d(Math.sin(beta)*Math.cos(alpha),Math.cos(beta),Math.sin(beta)*Math.sin
(alpha));
gl.glVertex3d(xs+r2*Math.sin(beta)*Math.cos(alpha),ys+r2*Math.cos(beta),zs+r2*Math.
sin(beta)*Math.sin(alpha));
gl.glEnd();
gl.glPopAttrib();
}
}
}
}