c++ - 如何使用 glut openGL 绘制 4 角星

标签 c++ opengl glut opengl-compat

我想在 C++ 中使用 GLUT 和 openGL 绘制一个 4pointed star。这是我的代码

glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0.0f,6.0f,0.0f);
    glVertex3f(1.0f,4.0f,0.0f);
    glVertex3f(3.0f,3.0f,0.0f);
    glVertex3f(1.0f,2.0f,0.0f);
    glVertex3f(0.0f,0.0f,0.0f);
    glVertex3f(-1.0f,2.0f,0.0f);
    glVertex3f(-3.0f,3.0f,0.0f);
    glVertex3f(-1.0f,4.0f,0.0f);

glEnd();

问题是形状直接从0,6变成3,3

谁能帮我解决这个问题, screenshot

我想要这样的东西 desired output

最佳答案

第1点GL_TRIANGLE_FAN primitiv 始终保持固定(参见 Triangle primitives )。只需启动 GL_TRIANGLE_FAN原始点位于“内部”点之一:

glBegin(GL_TRIANGLE_FAN);
    
    glVertex3f(1.0f,4.0f,0.0f);
    glVertex3f(3.0f,3.0f,0.0f);
    glVertex3f(1.0f,2.0f,0.0f);
    glVertex3f(0.0f,0.0f,0.0f);
    glVertex3f(-1.0f,2.0f,0.0f);
    glVertex3f(-3.0f,3.0f,0.0f);
    glVertex3f(-1.0f,4.0f,0.0f);

    glVertex3f(0.0f,6.0f,0.0f);

glEnd();

关于c++ - 如何使用 glut openGL 绘制 4 角星,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64139873/

相关文章:

c++ - 从全局 cuda 函数返回数据?

c++ - 核心配置文件与版本字符串?仅在 mesa 10.0.1 中获取 GLSL 1.3/OGL 3.0

c++ - 我可以为 C++ 的 Codeanywhere 项目配置设置哪些设置?

opengl - 如何实现 OpenGL 缩放范围功能

c++ - OpenGL 中的着色器问题

c++ - 应用程序文件未在不同的 Mac 上运行

c++ - glutPassiveMotionFunc 问题

c++ - 最后一幕出现黑色背景

c++ - 转换运算符如何返回值?

c++ - 当映射包含字符串 vector 作为值时从值中获取键的有效方法