OpenGL / GLU:是否有用于绘制圆圈的内置函数?

时间:2015-03-20 22:34:31

标签: opengl glu

我知道有用于绘制矩形的内置函数(例如glRecti()),并认为圆也是一个非常基本的用法。

是否有用于绘制圆圈的内置功能?或者我应该自己实施吗?

3 个答案:

答案 0 :(得分:1)

gluDisk() can be used to do so

void gluDisk(GLUquadricObj *obj,
             GLdouble innerRadius, GLdouble outerRadius,
             GLint slices, GLint loops)
     

innerRadiusouterRadius控制孔和磁盘的大小。

     

innerRadius设置为0.0以呈现实心圆圈   切片:磁盘的边数(例如3为等边三角形,6为a   垫圈20用于圆圈)。
  循环:呈现的同心环的数量,例如。 1代表圆圈2代表垫圈。使用较大的循环值可以改善镜面反射光和聚光灯的效果。

Official manpage

答案 1 :(得分:1)

如果您对使用GLU(整体上已弃用)感到满意,那么是的,有。默认情况下,gluDisk()会渲染一个实心圆,但也可以用于渲染圆形轮廓:

GLUquadric quad = gluNewQuadric();
...
gluQuadricDrawStyle(quad, GLU_SILHOUETTE);
gluDisk(quad, 0.0, radius, 64, 1);
...
gluDeleteQuadric(quad);

以上代码未经测试。

答案 2 :(得分:0)

不,没有内置的openGL功能...阅读本文,开始编写自己的drawCircle函数:

http://www.openglprojects.in/2014/03/draw-circle-opengl.html

<强> ===编辑====

GLU已弃用且完全不受支持。所以我甚至不建议为这样的库提供内置函数。