Opengl es 如何在opengles中绘制圆

Opengl es 如何在opengles中绘制圆,opengl-es,Opengl Es,这是我在屏幕上显示圆圈的部分代码,但不幸的是圆圈并没有出现在屏幕上 glClearColor(0, 0, 0, 0); glClear(GL_COLOR_BUFFER_BIT); glPushMatrix(); glLoadIdentity(); glColor3f(0.0f,1.0f,0.0f); glBegin(GL_LINE_LOOP); const float DEG2RAD = 3.14159/180; for (int i=0; i < 360; i++) {

这是我在屏幕上显示圆圈的部分代码,但不幸的是圆圈并没有出现在屏幕上

glClearColor(0, 0, 0, 0);
glClear(GL_COLOR_BUFFER_BIT);
 glPushMatrix();
glLoadIdentity();
 glColor3f(0.0f,1.0f,0.0f);
glBegin(GL_LINE_LOOP);

const float DEG2RAD = 3.14159/180;

for (int i=0; i < 360; i++)
{
    float degInRad = i*DEG2RAD;
    glVertex2f(cos(degInRad)*8,sin(degInRad)*8);
}

 glEnd();
glFlush();
glClearColor(0,0,0,0);
glClear(GLU颜色缓冲位);
glPushMatrix();
glLoadIdentity();
GL3F(0.0f,1.0f,0.0f);
glBegin(GL_线_环);
常数浮点数DEG2RAD=3.14159/180;
对于(int i=0;i<360;i++)
{
浮点数degInRad=i*DEG2RAD;
glVertex2f(cos(degInRad)*8,sin(degInRad)*8);
}
格伦德();
glFlush();

我不明白代码看起来还可以,但圆圈没有出现在屏幕上。

您的圆圈太大了。默认视口的范围为[(-1-1),(1)]

glClearColor(0, 0, 0, 0);
glClear(GL_COLOR_BUFFER_BIT);
 glPushMatrix();
glLoadIdentity();
 glColor3f(0.0f,1.0f,0.0f);
glBegin(GL_LINE_LOOP);

const float DEG2RAD = 3.14159/180;

for (int i=0; i < 360; i++)
{
    float degInRad = i*DEG2RAD;
    glVertex2f(cos(degInRad)*8,sin(degInRad)*8);
}

 glEnd();
glFlush();

顺便说一句,你不需要360段。根据你想要的平滑程度,30左右通常就足够了。

你的圆太大了。默认视口的范围为[(-1-1),(1)]


顺便说一句,你不需要360段。大约30个通常就足够了,这取决于你想要的平滑程度。

Hi Ajay,尝试此链接-可能有助于回答你的问题:)旁注:每次调用
glPushMatrix()
都应该与调用
glPopMatrix()
匹配。Hi Ajay,尝试此链接-可能有助于回答你的问题:)旁注:每次调用
glPushMatrix())
应该通过调用
glPopMatrix()
来匹配。我是ES新手,我编辑了30个片段,但仍然不可见。你说在哪里修改?在循环中?对不起,我刚刚意识到为什么我的答案可能会令人困惑。分段计数只是一个建议;它可以很好地处理360段。问题是半径是8。它将完全在视口外部绘制。尝试半径为0.8。现在运行正常。。。我刚开始学的一个问题。谢谢你的帮助。我是ES的新手。我编辑了30个片段,但仍然不可见。你说在哪里修改?在循环中?对不起,我刚刚意识到为什么我的答案可能会令人困惑。分段计数只是一个建议;它可以很好地处理360段。问题是半径是8。它将完全在视口外部绘制。尝试半径为0.8。现在运行正常。。。我刚开始学的一个问题。谢谢你的帮助。