
| Programkód (tank2.c) | ModelView mátrix aktuális tartalma | Veremművelet | Mátrixverem |
/* ModelView a verembe */
glPushMatrix();
/* R1: minden objektum elforgatasa, hogy jol lathato legyen */
glRotatef(45, 0.5f, 1.0f, 0.5f);
glColor3f(0.5, 0.5, 0.5);
glPushMatrix();
/* S1: also resz meretre alakitasa */
glScalef(1.2, 0.7, 2.0);
/* kocka: origo kozeppontu */
glutSolidCube(30);
glPopMatrix();
/* Ty: felso forgo resz es agyucso pozicionalasa */
glTranslatef(0.0, 17.5, 0.0);
/* Ry: felso forgo resz es agyucso elforgatasa y tengely korul */
glRotatef(yRot, 0.0f, 1.0f, 0.0f);
glPushMatrix();
/* S2: felso forgo resz meretre alakitasa */
glScalef(1.0, 0.7, 1.7);
/* kocka: origo kozeppontu */
glutSolidCube(20);
glPopMatrix();
glPushMatrix();
/* T1: agyucso a felso forgo resz ele */
glTranslatef(0.0, -1.5, 17.0);
/* R2: agyucso emelkedese */
glRotatef(xRot, 1.0f, 0.0f, 0.0f);
/* S3: agyucso nyujtasa 7-szeresre */
glScalef(1.0, 1.0, 7.0);
/* T2: kocka "hatso" lapjanak kozepe legyen az origoban */
glTranslatef(0.0, 0.0, 2.5);
/* kocka: origo kozeppontu */
glutSolidCube(5);
glPopMatrix();
// Restore the matrix state
glPopMatrix();
|
I I I * R1 I * R1 I * R1 * S1 Alkalmazása: kocka csúcspontjaira. I * R1 I * R1 * Ty I * R1 * Ty * Ry I * R1 * Ty * Ry I * R1 * Ty * Ry * S2 Alkalmazása: kocka csúcspontjaira. I * R1 * Ty * Ry I * R1 * Ty * Ry I * R1 * Ty * Ry * T1 I * R1 * Ty * Ry * T1 * R2 I * R1 * Ty * Ry * T1 * R2 * S3 I * R1 * Ty * Ry * T1 * R2 * S3 * T2 Alkalmazása: kocka csúcspontjaira. I * R1 * Ty * Ry I |
-->
-->
<--
-->
<--
-->
<--
<--
|
Üres (I) (I * R1), (I) (I) (I * R1 * Ty * Ry), (I) (I) (I * R1 * Ty * Ry), (I) (I) Üres |