2009-07-04 09:40
1、圆的画法:比较耗资源,低效率。 通过正多边的不断细化实现,正4,5,6……n;即近似圆。 for( i=0; i<n; i++ ) glVertex2f( R*cos(2*Pi/n*i), R*sin(2*Pi/n*i) ); glEnd();//计算多边形个点的坐标值即可(n边形) 2、画五角星:已知正5边形的长度,计算五角星的中心到顶点的距离,再根据对称性和正余炫关系计算个点坐标。 GLfloat a=1/(2-2*cos(72*pi/180 )); GLfloat bx=a*cos(18*pi/180 ); GLfloat by=a*sin(18*pi/180 ); GLfloat cy=-a*cos(36*pi/180 ); GLfloat cx=a*sin(36*pi/180 ); GLfloat PointA[2] ={ 0, a }, PointB[2] ={ bx, by }, PointC[2] ={ cx, cy }, PointD[2] ={ -cx, cy }, PointE[2] ={ -bx, by }; glBegin( GL_LINE_LOOP ); glVertex2fv( PointA ); glVertex2fv( PointC ); glVertex2fv( PointE ); glVertex2fv( PointB ); glVertex2fv( PointD ); glEnd(); //画正弦函数的图形 glBegin( GL_LINES ); glVertex2f( -1.0f, 0.0f ); glVertex2f( 1.0f, 0.0f );//X轴 glVertex2f( 0.0f, 1.0f ); glVertex2f( 0.0f, -1.0f );//Y轴 glEnd(); glBegin( GL_LINE_STRIP ); for( x=-1.0f/factor; x<1.0f/factor; x+= 0.01f ) { glVertex2f( x*factor, sin(x)*factor ); } glEnd(); glColor3*、glColor4*系列函数,在参数类型不同时,表示“最大”颜色的值也不同。 采用f和d做后缀的函数,以1.0表示最大的使用。 采用b做后缀的函数,以127表示最大的使用。 采用ub做后缀的函数,以255表示最大的使用。 采用s做后缀的函数,以32767表示最大的使用。 采用us做后缀的函数,以65535表示最大的使用。 |
No comments:
Post a Comment