我使用这种方法可以完美地绘制一个完整的圆圈(可能是我在内存中编写的代码文本中的拼写错误):
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罪的东西做什么。任何人都可以看看并帮助我。
感谢所有想看看问题的人!
答案 0 :(得分:5)
替换:
angle = 2 * PI * i / points;
使用:
angle = PI * i / points;
注意我删除了2乘数,因为2 * PI是360(以度为单位),这是一个完整的圆。 PI(180度)是半圈
答案 1 :(得分:2)
更改此行:
angle = 2 * PI * i / points;
到此:
angle = 1 * PI * i / points;
答案 2 :(得分:0)
绘制圆就像绘制一条线,连接它们。并且这些点应该彼此太靠近以创建平滑的曲线。 您可以使用以下代码在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();