1 opengl
我试图只画一个圆的一个扇区/一部分,但目前我总是得到一个完整的圆。
我用它来画一个圆圈:
glColor3f (0.25, 1.0, 0.25);
GLfloat angle, raioX=0.3f, raioY=0.3f;
GLfloat circle_points = 100.0f;
glBegin(GL_LINE_LOOP);
for (int i = 0; i < circle_points; i++) {
angle = 2*PI*i/circle_points;
glVertex2f(0.5+cos(angle)*raioX, 0.5+sin(angle)*raioY);
}
glEnd();
Run Code Online (Sandbox Code Playgroud)

glBegin (GL_LINE_LOOP);
glVertex2f (0.5f, 0.5f);
for (int i = 0; i < circle_points; i++) {
angle = 2*PI*i/circle_points;
glVertex2f (0.5+cos(angle)*raioX, 0.5+sin(angle)*raioY);
}
glEnd ();
Run Code Online (Sandbox Code Playgroud)
我唯一改变的是在0.5,0.5你的圆圈中心添加了一个点。没有这一点,您最终会绘制一个线段而不是一个扇区。
正如 BDL 指出的那样,您的原始代码画了一个完整的圆圈。圆的 1/4 的角度应该是 Pi/2 而不是 2*Pi。所以至少,你还需要重写这一行:
angle = PI * 0.5f * i / circle_points;
Run Code Online (Sandbox Code Playgroud)
BDL 的回答显示了一种更有效的方法。尽管它绘制了一条弧线,这可能是您想要的,也可能不是。无论哪种方式,您现在都有足够的代码来绘制上图中的所有三个内容。
| 归档时间: |
|
| 查看次数: |
3969 次 |
| 最近记录: |