|
정육면체는 면이 6개이며 꼭지점이 8개이다. 우리는 8개의 좌표를 알고 있어야 한다
OpenGL에서는 물체의 이동, 물체의 회전, 물체의 크기조절이 좌표체계를 변경함으로써 이루어진다.
실제로 물체를 이동하는 것이 아니고 1. 좌표축을 이동시킨후에 2. 물체를 그려주는 것이다
회전도 먼저 1. 좌표축을 지정된 각으로 회전시킨후에 2. 그 회전 좌표축 상에 물체를 그려주는 것이다.
glTranslatef(1.0f, 1.0f, 0.0f) glTranslatef 함수의 첫번째 인자는 X축으로 이동값, 두번째와 세번째는 각각 Y축과 Z축으로의 이동값이다. 이 함수는 물체를 그려주기 바로 전에 사용하면 되겠다.
다음은 좌표축을 Z축으로 45도 회전시키는 코드이다.
glRotatef(45.0f, 0.0f, 0.0f, 1.0f)
첫번째 인자는 회전각(45도)이고 나머지 인자들은 X,Y,Z축상의 값들이다. (0.0, 0.0, 1.0)이 Z축을 기준으로 회전한다는 의미데 회전을 할때는 반드시 회전축이 필요하다. 바로 (0.0, 0.0, 1.0)이 회전축을 지정해 주는 것이다. 원점에서 (0.0, 0.0, 1.0)을 잇는 선, 바로 이 선이 회전축인 것이다.
glScalef(1.0, 2.0f, 1.0f)
첫번째 인자는 X축 좌표값의 증가배수값이고 두번째와 세번째가 각각 Y, Z축의 좌표값의 증가 배수이다. 두번째 값을 2.0으로 잡아줌으로써 Y축의 좌표축 값을 다른 축에 비해 2배로 증가하게 되는 것이다.
① glTranslatef(...); ② glRotatef(...); 회전을 시키면 그 좌표축이 같이 따라서 돌아가기 때문에
|