c++ - 绘制圆轮廓的百分比

标签 c++ opengl

在 OpenGL 中,如何绘制圆的轮廓的给定百分比?我怎样才能控制轮廓的粗细?

示例:如果百分比为 100,则应绘制一个完整的圆的轮廓。如果百分比为50,则应绘制半个圆的轮廓。

我已经尝试了以下方法,但问题是它完成了线循环,导致一条连接圆形轮廓的起点和终点的线。此外,它并不能让我改变轮廓的粗细。

glBegin(GL_LINE_LOOP);

    for (int i=0; i < (360/10*percent/10); i++) {
        float degInRad = i*DEG2RAD;
        glVertex2f(a+cos(degInRad)*r,b+sin(degInRad)*r);
    }

glEnd();

我很想把我的GL_POINTS圈起来,但我想知道是否有更好的方法?

最佳答案

GL_LINE_LOOP替换为GL_LINE_STRIP,这样最后一个和第一个顶点就不会连接。使用 glLineWidth() 函数定义线条粗细。

关于c++ - 绘制圆轮廓的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11492414/

相关文章:

c# - 框架类库(FCL) 是分别为C# 和C++ 实现的吗?

c++ - OpenGL/GLSL - 使用缓冲区对象来获取统一的数组值

c++ - 在 Windows 窗体中嵌入 GLFW 窗口

c++ - 将 Opengl 模型加载到容器中并依次调用它们

c++ - 在 C++ 文件中写入 n 字节的最快方法

C++ 在 main() 函数之外创建类的实例

c++ - 异步 OLE 拖放可能吗?

c++ - 将 MFC CMap 用于 CString int 对

opengl - glBindBuffer 和直接状态访问?

c++ - 二维角色的 move 仅在一个方向上有效