From: Tim R. <ti...@us...> - 2004-07-18 09:32:36
|
Update of /cvsroot/csdopenglnet/csdOpenGL/samples In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19957 Modified Files: gears.cs Log Message: looks better now, but even not correct Index: gears.cs =================================================================== RCS file: /cvsroot/csdopenglnet/csdOpenGL/samples/gears.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** gears.cs 17 Jul 2004 20:50:39 -0000 1.3 --- gears.cs 18 Jul 2004 09:32:17 -0000 1.4 *************** *** 14,18 **** public Gears() { glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE ); ! glutInitWindowSize( 640, 480 ); glutCreateWindow("Gears"); --- 14,18 ---- public Gears() { glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE ); ! glutInitWindowSize( 480, 480 ); glutCreateWindow("Gears"); *************** *** 125,129 **** double r1 = outer_radius - tooth_depth / 2.0; double r2 = outer_radius + tooth_depth / 2.0; ! double da = 2.0f * System.Math.PI / teeth / 4.0; int i; double ang, u, v, len; --- 125,129 ---- double r1 = outer_radius - tooth_depth / 2.0; double r2 = outer_radius + tooth_depth / 2.0; ! double da = 2.0 * Math.PI / teeth / 4.0; int i; double ang, u, v, len; *************** *** 135,144 **** glBegin( GL_QUAD_STRIP ); for ( i=0; i<=teeth; i++ ) { ! ang = i * 2.0f * System.Math.PI / teeth; ! glVertex3d( r0 * System.Math.Cos( ang ), r0 * System.Math.Sin( ang ), width * 0.5 ); ! glVertex3d( r1 * System.Math.Cos( ang ), r1 * System.Math.Sin( ang ), width * 0.5 ); if ( i<teeth ) { ! glVertex3d( r0 * System.Math.Cos( ang ), r0 * System.Math.Sin( ang ), width * 0.5 ); ! glVertex3d( r1 * System.Math.Cos( ang + 3 * da ), r1 * System.Math.Sin( ang + 3 * da ), width * 0.5 ); } } --- 135,144 ---- glBegin( GL_QUAD_STRIP ); for ( i=0; i<=teeth; i++ ) { ! ang = i * 2.0f * Math.PI / teeth; ! glVertex3d( r0 * Math.Cos( ang ), r0 * Math.Sin( ang ), width * 0.5 ); ! glVertex3d( r1 * Math.Cos( ang ), r1 * Math.Sin( ang ), width * 0.5 ); if ( i<teeth ) { ! glVertex3d( r0 * Math.Cos( ang ), r0 * Math.Sin( ang ), width * 0.5 ); ! glVertex3d( r1 * Math.Cos( ang + 3 * da ), r1 * Math.Sin( ang + 3 * da ), width * 0.5 ); } } *************** *** 147,157 **** /* front side of teeth */ glBegin( GL_QUADS ); ! da = 2.0 * System.Math.PI / teeth / 4.0; for ( i=0; i<teeth; i++ ) { ! ang = i * 2.0 * System.Math.PI / teeth; ! glVertex3d( r1 * System.Math.Cos( ang ), r1 * System.Math.Sin( ang ), width * 0.5 ); ! glVertex3d( r2 * System.Math.Cos( ang + da ), r2 * System.Math.Sin( ang + da ), width * 0.5 ); ! glVertex3d( r2 * System.Math.Cos( ang + 2 * da ), r2 * System.Math.Sin( ang + 2 * da ), width * 0.5 ); ! glVertex3d( r1 * System.Math.Cos( ang + 3 * da ), r1 * System.Math.Sin( ang + 3 * da ), width * 0.5 ); } glEnd(); --- 147,157 ---- /* front side of teeth */ glBegin( GL_QUADS ); ! da = 2.0 * Math.PI / teeth / 4.0; for ( i=0; i<teeth; i++ ) { ! ang = i * 2.0 * Math.PI / teeth; ! glVertex3d( r1 * Math.Cos( ang ), r1 * Math.Sin( ang ), width * 0.5 ); ! glVertex3d( r2 * Math.Cos( ang + da ), r2 * Math.Sin( ang + da ), width * 0.5 ); ! glVertex3d( r2 * Math.Cos( ang + 2 * da ), r2 * Math.Sin( ang + 2 * da ), width * 0.5 ); ! glVertex3d( r1 * Math.Cos( ang + 3 * da ), r1 * Math.Sin( ang + 3 * da ), width * 0.5 ); } glEnd(); *************** *** 159,184 **** glNormal3d( 0.0, 0.0, -1.0 ); ! /* draw back face */ glBegin( GL_QUAD_STRIP ); ! for ( i=0; i<teeth; i++ ) { ! ang = i * 2.0 * System.Math.PI / teeth; ! glVertex3d( r1 * System.Math.Cos( ang ), r1 * System.Math.Sin( ang ), -width * 0.5 ); ! glVertex3d( r0 * System.Math.Cos( ang ), r0 * System.Math.Sin( ang ), -width * 0.5 ); if (i<teeth) { ! glVertex3d( r1 * System.Math.Cos( ang + 3 * da ), r1 * System.Math.Sin( ang + 3 * da ), -width * 0.5 ); ! glVertex3d( r0 * System.Math.Cos( ang ), r0 * System.Math.Sin( ang ), -width * 0.5 ); } } glEnd(); ! /* draw back side of teeth */ glBegin( GL_QUADS ); ! da = 2.0 * System.Math.PI / teeth / 4.0; for ( i=0; i<teeth; i++ ) { ! ang = i * 2.0 * System.Math.PI / teeth; ! glVertex3d( r1 * System.Math.Cos( ang + 3 * da ), r1 * System.Math.Sin( ang + 3 * da ), -width * 0.5 ); ! glVertex3d( r2 * System.Math.Cos( ang + 2 * da ), r2 * System.Math.Sin( ang + 2 * da ), -width * 0.5 ); ! glVertex3d( r2 * System.Math.Cos( ang + da ), r2 * System.Math.Sin( ang + da ), -width * 0.5 ); ! glVertex3d( r1 * System.Math.Cos( ang ), r1 * System.Math.Sin( ang ), -width * 0.5 ); } glEnd(); --- 159,184 ---- glNormal3d( 0.0, 0.0, -1.0 ); ! /* back face */ glBegin( GL_QUAD_STRIP ); ! for ( i=0; i<=teeth; i++ ) { ! ang = i * 2.0 * Math.PI / teeth; ! glVertex3d( r1 * Math.Cos( ang ), r1 * Math.Sin( ang ), -width * 0.5 ); ! glVertex3d( r0 * Math.Cos( ang ), r0 * Math.Sin( ang ), -width * 0.5 ); if (i<teeth) { ! glVertex3d( r1 * Math.Cos( ang + 3 * da ), r1 * Math.Sin( ang + 3 * da ), -width * 0.5 ); ! glVertex3d( r0 * Math.Cos( ang ), r0 * Math.Sin( ang ), -width * 0.5 ); } } glEnd(); ! /* back side of teeth */ glBegin( GL_QUADS ); ! da = 2.0 * Math.PI / teeth / 4.0; for ( i=0; i<teeth; i++ ) { ! ang = i * 2.0 * Math.PI / teeth; ! glVertex3d( r1 * Math.Cos( ang + 3 * da ), r1 * Math.Sin( ang + 3 * da ), -width * 0.5 ); ! glVertex3d( r2 * Math.Cos( ang + 2 * da ), r2 * Math.Sin( ang + 2 * da ), -width * 0.5 ); ! glVertex3d( r2 * Math.Cos( ang + da ), r2 * Math.Sin( ang + da ), -width * 0.5 ); ! glVertex3d( r1 * Math.Cos( ang ), r1 * Math.Sin( ang ), -width * 0.5 ); } glEnd(); *************** *** 187,218 **** glBegin( GL_QUAD_STRIP ); for ( i=0; i<teeth; i++ ) { ! ang = i * 2.0 * System.Math.PI / teeth; ! glVertex3d( r1 * System.Math.Cos( ang ), r1 * System.Math.Sin( ang ), width * 0.5 ); ! glVertex3d( r1 * System.Math.Cos( ang ), r1 * System.Math.Sin( ang ), -width * 0.5 ); ! u = r2 * System.Math.Cos( ang + da ) - r1 * System.Math.Cos( ang ); ! v = r2 * System.Math.Sin( ang + da ) - r1 * System.Math.Sin( ang ); ! len = System.Math.Sqrt( u * u + v * v ); u = u / len; v = v / len; glNormal3d( v, -u, 0.0 ); ! glVertex3d( r2 * System.Math.Cos( ang + da ), r2 * System.Math.Sin( ang + da ), width * 0.5 ); ! glVertex3d( r2 * System.Math.Cos( ang + da ), r2 * System.Math.Sin( ang + da ), -width * 0.5 ); ! glVertex3d( System.Math.Cos( ang ), System.Math.Sin( ang ), 0.0 ); ! glVertex3d( r2 * System.Math.Cos( ang + 2 * da ), r2 * System.Math.Sin( ang + 2 * da ), width * 0.5 ); ! glVertex3d( r2 * System.Math.Cos( ang + 2 * da ), r2 * System.Math.Sin( ang + 2 * da ), -width * 0.5 ); ! u = r1 * System.Math.Cos( ang + 3 * da ) - r2 * System.Math.Cos( ang + 2 * da ); ! v = r1 * System.Math.Sin( ang + 3 * da ) - r2 * System.Math.Sin( ang + 2 * da ); glNormal3d( v, -u, 0.0 ); ! glVertex3d( r1 * System.Math.Cos( ang + 3 * da ), r1 * System.Math.Sin( ang + 3 * da ), width * 0.5 ); ! glVertex3d( r1 * System.Math.Cos( ang + 3 * da ), r1 * System.Math.Sin( ang + 3 * da ), -width * 0.5 ); ! glNormal3d( System.Math.Cos( ang ), System.Math.Sin( ang ), 0.0 ); } ! glVertex3d( r1 * System.Math.Cos( 0 ), r1 * System.Math.Sin( 0 ), width * 0.5 ); ! glVertex3d( r1 * System.Math.Cos( 0 ), r1 * System.Math.Sin( 0 ), -width * 0.5 ); glEnd(); --- 187,218 ---- glBegin( GL_QUAD_STRIP ); for ( i=0; i<teeth; i++ ) { ! ang = i * 2.0 * Math.PI / teeth; ! glVertex3d( r1 * Math.Cos( ang ), r1 * Math.Sin( ang ), width * 0.5 ); ! glVertex3d( r1 * Math.Cos( ang ), r1 * Math.Sin( ang ), -width * 0.5 ); ! u = r2 * Math.Cos( ang + da ) - r1 * Math.Cos( ang ); ! v = r2 * Math.Sin( ang + da ) - r1 * Math.Sin( ang ); ! len = Math.Sqrt( u * u + v * v ); u = u / len; v = v / len; glNormal3d( v, -u, 0.0 ); ! glVertex3d( r2 * Math.Cos( ang + da ), r2 * Math.Sin( ang + da ), width * 0.5 ); ! glVertex3d( r2 * Math.Cos( ang + da ), r2 * Math.Sin( ang + da ), -width * 0.5 ); ! glVertex3d( Math.Cos( ang ), Math.Sin( ang ), 0.0 ); ! glVertex3d( r2 * Math.Cos( ang + 2 * da ), r2 * Math.Sin( ang + 2 * da ), width * 0.5 ); ! glVertex3d( r2 * Math.Cos( ang + 2 * da ), r2 * Math.Sin( ang + 2 * da ), -width * 0.5 ); ! u = r1 * Math.Cos( ang + 3 * da ) - r2 * Math.Cos( ang + 2 * da ); ! v = r1 * Math.Sin( ang + 3 * da ) - r2 * Math.Sin( ang + 2 * da ); glNormal3d( v, -u, 0.0 ); ! glVertex3d( r1 * Math.Cos( ang + 3 * da ), r1 * Math.Sin( ang + 3 * da ), width * 0.5 ); ! glVertex3d( r1 * Math.Cos( ang + 3 * da ), r1 * Math.Sin( ang + 3 * da ), -width * 0.5 ); ! glNormal3d( Math.Cos( ang ), Math.Sin( ang ), 0.0 ); } ! glVertex3d( r1 * Math.Cos( 0 ), r1 * Math.Sin( 0 ), width * 0.5 ); ! glVertex3d( r1 * Math.Cos( 0 ), r1 * Math.Sin( 0 ), -width * 0.5 ); glEnd(); *************** *** 222,229 **** glBegin( GL_QUAD_STRIP ); for ( i=0; i<=teeth; i++ ) { ! ang = i * 2.0 * System.Math.PI / teeth; ! glNormal3d( -System.Math.Cos( ang ), -System.Math.Sin( ang ), 0.0 ); ! glVertex3d( r0 * System.Math.Cos( ang ), r0 * System.Math.Sin( ang ), -width * 0.5 ); ! glVertex3d( r0 * System.Math.Cos( ang ), r0 * System.Math.Sin( ang ), width * 0.5 ); } glEnd(); --- 222,229 ---- glBegin( GL_QUAD_STRIP ); for ( i=0; i<=teeth; i++ ) { ! ang = i * 2.0 * Math.PI / teeth; ! glNormal3d( -Math.Cos( ang ), -Math.Sin( ang ), 0.0 ); ! glVertex3d( r0 * Math.Cos( ang ), r0 * Math.Sin( ang ), -width * 0.5 ); ! glVertex3d( r0 * Math.Cos( ang ), r0 * Math.Sin( ang ), width * 0.5 ); } glEnd(); |