void MyDisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
/*기준선*/
glBegin(GL_LINES);
glColor3f(1, 0, 0); // X
glVertex3f(-1, 0, 0); glVertex3f(1, 0, 0);
glColor3f(0, 1, 0); // Y
glVertex3f(0, -1, 0); glVertex3f(0, 1, 0);
glColor3f(0, 0, 1); // Z
glVertex3f(0, 0, -1); glVertex3f(0, 0, 1);
glEnd();
glTranslatef(0.7, 0.7, 0);
glRotatef(45, 0, 0, 1);
glScalef(2, 2, 2);
/*P 사각형*/
glBegin(GL_POLYGON);
glColor3f(0, 0, 255);
glVertex3f(0.1, 0.1, 0);
glVertex3f(-0.1, 0.1, 0);
glVertex3f(-0.1, -0.1, 0);
glVertex3f(0.1, -0.1, 0);
glVertex3f(0.1, 0.1, 0);
glEnd();
glLoadIdentity();
glTranslatef(-0.5, 0, 0);
glScalef(1, 1, 0.5);
glRotatef(45, 0, 0, 1);
/*P 사각형*/
glBegin(GL_POLYGON);
glColor3f(0, 0, 255);
glVertex3f(0.1, 0.1, 0);
glVertex3f(-0.1, 0.1, 0);
glVertex3f(-0.1, -0.1, 0);
glVertex3f(0.1, -0.1, 0);
glVertex3f(0.1, 0.1, 0);
glEnd();
glFlush();
}
함수 호출과 물체 변환은 반대가 된다.
glTranslatef(0.7, 0.7, 0);
glRotatef(45, 0, 0, 1);
glScalef(2, 2, 2);
물체변환은 회전후 이동을 하게 된다.
glRotatef(45, 0, 0, 1);
glTranslatef(0.7, 0.7, 0);
glScalef(2, 2, 2);
반대의 순서가 될 경우
물체는 이동후 회전을 하고 되고
이러한 결과를 갖게 된다.
'Language > C++ & openGL' 카테고리의 다른 글
오픈지엘 행렬스택 glPushMatrix/glPopMatrix, 시점변환gluLookAt, 평행|원근 투상 glOrtho/gluPerspective (0) | 2020.06.11 |
---|---|
오픈지엘 gluLookAt 시점 변환 모델 잘림 해결, 뷰포트 (0) | 2020.06.05 |
오픈지엘 마우스 클릭으로 다수의 선 그리기 (0) | 2020.05.21 |
그래픽스 시작 (0) | 2020.05.13 |
openGL Retained mode(보류모드) / 디스플레이 리스트 (1) | 2020.05.06 |
댓글