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과 반경과 원의 분기를 설정하고 미 소요 전체 창. 저는 반경을 가지고 어떤 종류의 변형을해야한다고 생각합니다. 어떻게 해야할지 모르겠습니다.
그것은하는 gluLookAt에서 z 좌표는? – emic
세계 좌표에서보기 (또는 카메라 또는 눈) 좌표까지 변환을 정의합니다. 당신은'lookAt' 행렬로 그것을한다. 투영 변환을 사용하고 있지 않습니다. 최종 좌표는 NDC로, 2x2x2 크기의 상자입니다. Rotation 및 Scaling과 같은 변형에 대해 알아야합니다. – Ripi2
looAt를 삭제하기 위해 코드를 약간 변경했지만 지금은 원이 더 커, 전체 창의 1/4이 차지하고 있습니다. @ Ripi2 – emic