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.

Os eixos 3D servem <strong>de</strong> auxílio ao posicionamento e à visualização no sistema <strong>de</strong> coor<strong>de</strong>nadas <strong>de</strong> um modogeral. Para <strong>de</strong>senhar os eixos po<strong>de</strong> ser utilizada a função GlUtil.drawUnitAxes() fornecida na biblioteca <strong>de</strong>apoio à ca<strong>de</strong>ira <strong>de</strong> Computação gráfica.10.1.1 Configuração <strong>de</strong> Superfícies QuádricasO <strong>de</strong>senho <strong>de</strong> superfícies quádricas fornece alguma flexibilida<strong>de</strong> no que respeita a normais, coor<strong>de</strong>nadas <strong>de</strong>texturas e outros parâmetros. No entanto, a colocação <strong>de</strong> todos estes parâmetros numa única função tornariaa sua utilização pouco prática. Em vez disso, é utilizada uma abordagem orientada a objectos. Um objectoquádrico é criado e os parâmetros <strong>de</strong> ren<strong>de</strong>rização são <strong>de</strong>finidos com um conjunto <strong>de</strong> funções, como mostra oexemplo:GLU glu = new GLU ();// Criar o objecto para a superficie quadricaGLUquadric quad = glu . gluNewQuadric ();// Configurar parametros// Desenhar as superficies// Apagar o objectoglu . gluDeleteQuadric ( quad );A função GLU.gluNewQuadric() retorna um objecto do tipo GLUquadric sobre o qual vamos alterar aspreferências. Depois <strong>de</strong> o objecto ser <strong>de</strong>senhado, po<strong>de</strong>mos libertar o objecto anteriormente criado utilizando afunção GLU.gluDeleteQuadric().Existem quatro funções para alterar a forma com os quadrics são <strong>de</strong>senhados. A primeira função é:GLU . gluQuadricDrawStyle ( GLUquadric quad , int drawStyle );O primeiro parâmetro da função é o objecto criado previamente. O segundo parâmetro toma o valor <strong>de</strong> umadas constantes <strong>de</strong>scritas na Tabela 10.1.ConstanteGLU.GLU FILLGLU.GLU LINEGLU.GLU POINTGLU.GLU SILHOUETTEDescriçãoQuadrics <strong>de</strong>senhados como objectos sólidosQuadrics <strong>de</strong>senhados como wireframesQuadrics <strong>de</strong>senhados como pontosParecido com o wireframe, mas faces adjacentesdos polígonos não são <strong>de</strong>senhadasTabela 10.1: Estilos <strong>de</strong> Desenho dos QuadricsA função seguinte permite <strong>de</strong>finir a forma como as normais são criadas para a geometria:GLU . gluQuadricNormals ( GLUquadric quad , int normals );Os valores possíveis para o parâmetro normals são:• GLU NONE - superfície <strong>de</strong>senhadas sem normais• GLU SMOOTH - as normais são calculadas para cada vértice, dando uma aparência suave à superfície• GLU FLAT - as normais são calculadas com base no conjunto dos vértices <strong>de</strong> cada polígono (triângulo)A orientação das normais po<strong>de</strong> ser especificada com:GLU . gluQuadricOrientation ( GLUquadric quad , int orientation );Neste caso, o parâmetro orientation, po<strong>de</strong> tomar um dos valores GLU OUTSIDE ou GLU INSIDE. Por omissão,os quadrics são <strong>de</strong>senhados com a face para fora (CCW).Esta função é útil para o caso <strong>de</strong> querermos alterar a face sobre a qual a luz inci<strong>de</strong>, por exemplo, no interior<strong>de</strong> uma esfera especificaríamos GLU INSIDE.A última função permite activar a geração <strong>de</strong> coor<strong>de</strong>nadas para a superfície:GLU . gluQuadricTexture ( GLUquadric quad , boolean texture );Neste caso quanto texture é true, é activada a geração, caso contrário é <strong>de</strong>sactivada. As esferas e cilindrossão “embrulhados” na textura, como se a textura os envolvesse. No caso dos discos, o centro da textura coinciecomo centro do disco e as bordas da textura coinci<strong>de</strong>m com as bordas do disco.101

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

Saved successfully!

Ooh no, something went wrong!