Manual de Apoio 2010
Manual de Apoio 2010
Manual de Apoio 2010
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
v1ctrlPoints . add ( -4f, 0f, 0f); // Start (u1)ctrlPoints . add ( -2f, 4f, 0f); // Control (u1)ctrlPoints . add (4f, 0f, 0f); // End (u1)// v2ctrlPoints . add ( -4f, 0f, -4f); // Start (u2)ctrlPoints . add ( -2f, 4f, -4f); // Control (u2)ctrlPoints . add (4f, 0f, -4f); // End (u2)}public void display ( GLAutoDrawable drawable ) {GL2 gl = drawable . getGL (). getGL2 ();gl. glClear ( GL2 . GL_COLOR_BUFFER_BIT );}float umin = 0f; // Valor minimo do ufloat umax = 10f; // Valor maximo do ufloat vmin = 0f; // Valor minimo do vfloat vmax = 10f; // Valor maximo do vgl. glMap2f (GL2 . GL_MAP2_VERTEX_3 , // Tipo <strong>de</strong> dados geradosumin , // Valor minimo do uumax , // Valor maximo do u3, // Distancia entre pontos ( dominio u)3, // Numero <strong>de</strong> pontos <strong>de</strong> controlo ( dominio u)vmin , // Valor minimo do vvmax , // Valor maximo do v9, // Distancia entre pontos ( dominio v)3, // Numero <strong>de</strong> pontos <strong>de</strong> controlo ( dominio v)ctrlPoints . toFloatBuffer () // FloatBuffer contendo pontos <strong>de</strong> controlo);// Activar o Evaluatorgl. glEnable ( GL2 . GL_MAP2_VERTEX_3 );// Desenhar os vertices da superficiegl. glColor3f (0f, 0f, 0f);gl. glMapGrid2d (10 , umin , umax , 10 , vmin , vmax );gl. glEvalMesh2 ( GL2 . GL_LINE , ( int )umin , ( int )umax , ( int )vmin , ( int ) vmax );// Desenhar Pontos <strong>de</strong> Contrologl. glPointSize (5.0 f);gl. glColor3f (1f, 0f, 0f);gl. glBegin ( GL2 . GL_POINTS );for ( GLVector point : ctrlPoints )point . draw ();gl. glEnd ();gl. glPopMatrix ();@Overri<strong>de</strong>public void reshape ( GLAutoDrawable drawable , int x, int y, int width , int height ) {GL2 gl = drawable . getGL (). getGL2 ();if ( height == 0)height = 1; // prevenir divisao por 0gl. glViewport (0 , 0, canvas . getSize (). width , canvas . getSize (). height );gl. glMatrixMo<strong>de</strong> ( GL2 . GL_PROJECTION );gl. glLoadI<strong>de</strong>ntity ();float volume = 100 f;float fAspect = ( float ) width / ( float ) height ;143