   help needed with code
  hi,    i can't figure out how this code fragment is calculating the far and near clipping plane (i guess!!!) coordinates from the camera coordinate. plz help........megneeto//****    *****/double xcam_1 = 0., ycam_1 = 8., zcam_1 = 10.; //Camera positiondouble xfoc_1 = 0., yfoc_1 = 0., zfoc_1 = 0.;//Focal point positiondouble fovy_1 = 40.; //Viewing angledouble xyzmax_1 = 9.;//Inital length of the axes in the small viewportsdouble far_1 = 1.8*xyzmax_1;    //Inital distance of the far clipping planedouble near_1 = 1.;   //Initial dist'n of the near clipping planedouble delta_1 = 0.0625;   //Amount changed in a parameter when it is adjusted.int    winHeight_1 = 721*3/4;   //The default height of the windowint    winWidth_1 = 1024*3/4;   //The default width of the window/*.......................................................................*/void frustum_1(){double  a = xfoc_1 - xcam_1,  b = yfoc_1 - ycam_1,  c = zfoc_1 - zcam_1;double  v = sqrt(b * b + c * c);double  alpha = atan( b/c)*180./3.1416;double  beta = -atan(a/v)*180./3.1416;double  width;if (showCamera_1) width = winWidth_1-(winHeight_1/2.);else width = winWidth_1;double  g = far_1,  h = g * tan(fovy_1*(width/winHeight_1)/2. * 3.1416/180.);double  e = near_1, f = e * tan(fovy_1/2. * 3.1416/180.);if (c < 0.) alpha = alpha + 180.;glEnable( GL_BLEND);glPolygonMode( GL_BACK, GL_FILL);glDisable( GL_CULL_FACE);glPushMatrix();glTranslatef( xcam_1, ycam_1, zcam_1);glRotatef( -alpha, 1., 0., 0.);glRotatef( -beta, 0., 1., 0.);glColor4f( .5, .5, .5, .4);glBegin( GL_LINES);glVertex3f( 0., 0., 0.);glVertex3f( -f, -f, e);glVertex3f( 0., 0., 0.);glVertex3f( -f, f, e);glVertex3f( 0., 0., 0.);glVertex3f( f, -f, e);glVertex3f( 0., 0., 0.);glVertex3f( f, f, e);glEnd();glBegin( GL_QUADS);glColor4f( .1, .2, .4, 0.4);glVertex3f( -f, f, e);glVertex3f( -h, h, g);glVertex3f( h, h, g);glVertex3f( f, f, e);glVertex3f( -f, -f, e);glVertex3f( -h, -h, g);glVertex3f( h, -h, g);glVertex3f( f, -f, e);glColor4f( .2, .4, .1, 0.4);glVertex3f( -f, f, e);glVertex3f( -h, h, g);glVertex3f( -h, -h, g);glVertex3f( -f, -f, e);glVertex3f( f, f, e);glVertex3f( h, h, g);glVertex3f( h, -h, g);glVertex3f( f, -f, e);glEnd();glPopMatrix();}    //frustum()   
  It computes the size of the near and far planes using the tangent:    tan( angle ) = opposite / adjacent soopposite = adjacent * tan( angle ) Since g and e are the distances to the near and far planes (the lengths of the adjacent sides), h and f are the distances from the axis to the edge (the lengths of the opposite sides).   ;  can i write double g = far_1, h = g * tan(fovy_1/2. * 3.1416/180.); instead ofdouble g = far_1, h = g * tan(fovy_1*(width/winHeight_1)/2. * 3.1416/180.); ??