使用glut和OpenGL绘制四角星可以通过以下步骤实现:
#include <GL/glut.h>
#include <math.h>
void drawStar(float cx, float cy, float radius, int numPoints)
{
float angle = 2 * 3.1415926 / numPoints;
float halfAngle = angle / 2;
glBegin(GL_TRIANGLE_FAN);
glVertex2f(cx, cy); // 中心点
for (int i = 0; i <= numPoints; i++)
{
float x = cx + radius * cos(i * angle);
float y = cy + radius * sin(i * angle);
glVertex2f(x, y);
x = cx + radius / 2 * cos(i * angle + halfAngle);
y = cy + radius / 2 * sin(i * angle + halfAngle);
glVertex2f(x, y);
}
glEnd();
}
void renderScene()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 0.0); // 设置颜色为黄色
// 绘制四角星
drawStar(0.0, 0.0, 0.5, 5);
glFlush();
}
void init()
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-1.0, 1.0, -1.0, 1.0);
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(100, 100);
glutCreateWindow("OpenGL Star");
glutDisplayFunc(renderScene);
init();
glutMainLoop();
return 0;
}
这样就可以使用glut和OpenGL绘制一个四角星了。在绘制函数中,我们使用glBegin和glEnd来定义绘制的图形类型,glVertex2f用于指定顶点的坐标。glClear用于清除窗口,glColor3f用于设置绘制颜色,glFlush用于刷新绘图命令。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云