13.07.2015 Views

Manual de Apoio 2010

Manual de Apoio 2010

Manual de Apoio 2010

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

O passo final consiste no mapeamento do nosso sistema <strong>de</strong> coor<strong>de</strong>nadas a um plano 2D pelas transformaçõesna matriz <strong>de</strong> transformações Viewport.3.5.1 Matriz Mo<strong>de</strong>lviewFelizmente para os utilizadores da API OpenGL, uma gran<strong>de</strong> parte das transformadas é disponibilizada sob aforma <strong>de</strong> um conjunto <strong>de</strong> funções <strong>de</strong> alto nível. Ainda que estas funções <strong>de</strong> alto nível permitam ao utilizadorabstrair-se das operações matemáticas, existe a possibilida<strong>de</strong> <strong>de</strong> efectuar operações avançadas com matrizesespecíficas 1TranslationFunção <strong>de</strong> Translação:GL. glTranslatef (float x, float y, float z)A função recebe como argumentos os valores da translação no x, y e z. O pseudo-código seguinte é ilustradona Figura 3.4.GL2 gl = drawable . getGL (). getGL2 ();GLUT glut = new GLUT ();// Translacao <strong>de</strong> y =10gl. glTranslatef (0f, 10f, 0f);// Desenhar o cubo ...glut . glutWireCube (10 f);Figura 3.4: TranslationRotationFunção <strong>de</strong> Rotação:GL. glRotatef (float angle ,float x, float y, float z)A função recebe como argumentos, o ângulo <strong>de</strong> rotação. Os valores x, y e z, representam um eixo arbitráriosobre o qual <strong>de</strong>ve ser feita a rotação 2 . O pseudo-código seguinte é ilustrado na Figura 3.5.GL2 gl = drawable . getGL (). getGL2 ();GLUT glut = new GLUT ();// Rodar 45 em Torno do vector Vr =[1 ,1 ,1]gl. glRotatef (45f, 1f, 1f, 1f);1 Consultar na referência da API - glLoadMatrix*2 Por exemplo: para obter um eixo perpendicular ao eixo − y basta fornecer o vector V y =[0f, 1f, 0f]18

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!