如何在 opengl 中画一个半圆

How do I draw an half Circle in opengl

本文关键字:一个 半圆 opengl      更新时间:2023-09-26

我使用这种方法可以完美地绘制一个完整的圆圈(可能是我从内存中编写的代码文本中的拼写错误):

drawCircle(GLAutodrawble drawble){
  GL gl = drawble.getGL();
  gl.glTranslatef(0.0f,0.0f,-7.0f);
  gl.glBeginf(GL_LINE_LOOP);
  gl.glColorf(0.0f,0.0f,0.0);
  final dobule  PI = 3.141592654;
  double angle = 0.0;
  int points = 100;
  for(int i =0; i < points;i++){
    angle = 2 * PI * i / points;
    gl.glVertexf((float)Math.cos(angle),(float)Math.sin(angle));
  }
  gl.glScalef(1.0f,1.0f,0.0f);
  gl.glEnd();
}

我想使用相同的原则来制作半圆的方法,我不知道我应该如何处理cos罪的东西。谁能看看并帮助我。

感谢所有看问题的人!

替换 :

angle = 2 * PI * i / points;

跟:

angle = PI * i / points;

请注意,我删除了 2 乘数,因为 2*PI 是 360(以度为单位),这是一个完整的圆。PI(180度)是半个圆

更改此行:

angle = 2 * PI * i / points;

对此:

angle = 1 * PI * i / points;

画圆就像画一条线,将它们连接起来。并且这些点应该彼此靠得太近,以创建平滑的曲线。您可以使用以下代码在 OpenGL 中绘制一个半圆。

 float PI = 3.14
 float step=5.0;// How far is the next point i.e it should be small value
 glBegin(GL_LINE_STRIP)
 for(float angle=0.0f,angle<=180; angle+=step)
 {
    float rad  = PI*angle/180;
   x  = centerX+radius*cos(rad);
   y  = centerY+radius*sin(rad);
   glVertex(x,y,0.0f);
}
glEnd();