设五角星5个顶点分别为ABCDE,顶点到坐标轴原点距离为r,ABCDE各点用r表示,分别为
A(0,r);
B(-r*sin(2/5*Pi),r*cos(2/5*Pi));
C(-r*sin(Pi/5),-r*cos(Pi/5));
DE和CB关于Y轴对称。
确定5个顶点的坐标后,使用GL_LINE_LOOP函数,将5个点连接起来,顺序依次为ACEBD。
主要代码为:
1 void Star(void) 2 { 3 4 GLfloat r = 0.8f; 5 GLfloat PointA[2] = { 0, r }; 6 GLfloat PointB[2] = { -r*sin(0.4*Pi), r*cos(0.4*Pi) }; 7 GLfloat PointC[2] = { -r*sin(Pi / 5), -r*cos(Pi / 5) }; 8 GLfloat PointD[2] = { r*sin(Pi / 5), -r*cos(Pi / 5) }; 9 GLfloat PointE[2] = { r*sin(0.4*Pi), r*cos(0.4*Pi) }; 10 11 glClear(GL_COLOR_BUFFER_BIT); 12 13 glBegin(GL_LINE_LOOP); 14 glVertex2fv(PointA); 15 glVertex2fv(PointC); 16 glVertex2fv(PointE); 17 glVertex2fv(PointB); 18 glVertex2fv(PointD); 19 20 glEnd(); 21 22 glFinish(); 23 }
绘制成果如下:
时间: 2024-10-06 07:03:40