我想提請使用GL_POLYGON
和我試過代碼圓的是工作,但該圓的半徑好像出與窗口大小規模的,我不明白爲什麼。繪圖與GL_POLYGON圓圈,半徑出規模
下面是代碼:
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
if(start == OFF)
{
//Set Drawing Color - Will Remain this color until otherwise specified
glColor3f(0.2, 0.3, 0.5); //Some type of blue
//Draw Circle
glBegin(GL_POLYGON);
for(double i = 0; i < 2 * PI; i += PI/24)
glVertex3f((cos(i) * radius) + gX,(sin(i) * radius) + gY, 0.0);
glEnd();
//Draw Circle
center_x = gX;
center_y = gY;
}
glutSwapBuffers();
}
和初始化函數:
void init (void)
{
/* selecionar cor de fundo (preto) */
glClearColor (0.0, 0.0, 0.0, 0.0);
/* inicializar sistema de viz. */
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
我設置窗口大小爲600,半徑爲1的圓的四分之一把我們的整個窗口。我猜測我必須做一些半徑變換,我只是不知道如何。
是它的Z在gluLookAt協調? – emic
您正在定義一個轉換:從世界座標到視圖(或相機,或眼睛)座標。你用'lookAt'矩陣來做。您沒有使用投影轉換。您的最終座標是NDC,這是一個2x2x2大小的框。您應該瞭解這些和其他轉換,例如旋轉和縮放。 – Ripi2
我稍微改了一下代碼來刪除looAt,但是現在這個圓圈更大了,其中四分之一是整個窗口。 @ Ripi2 – emic