圆,五角星,正弦曲线的画法
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
圆,五角星,正弦曲线的画法 2009-07-04 09:401、 1、圆的画法: 比较耗资源,低效率。 通过正多边的不断细化实现,正4,5,6……n;即近似圆。 for( i=0; 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();
AIN:以GL_LINE_LOOP为参数画出来的是线框,没有填充,而五角星是个凹多边形,以GL_POLYGON等为参数画出来的虽然有填充,但是失真,因此这种方法并不可取 可以先画五角星的五分之一,然后旋转五次,用五个四边形组合成一个五角星。程序如下:
//画正弦函数的图形 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();
本文来源:https://www.wddqw.com/doc/2a1faad87f1cfad6195f312b3169a4517623e574.html