13.07.2015 Views

Manual de Apoio 2010

Manual de Apoio 2010

Manual de Apoio 2010

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ByteBuffer fire = ByteBuffer . wrap ( new byte [] {( byte ) 0x00 , ( byte ) 0x00 , ( byte ) 0x00 , ( byte ) 0x00 ,( byte ) 0x00 , ( byte ) 0x00 , ( byte ) 0x00 , ( byte ) 0x00 ,( byte ) 0x00 , ( byte ) 0x00 , ( byte ) 0x00 , ( byte ) 0x00 ,( byte ) 0x00 , ( byte ) 0x00 , ( byte ) 0x00 , ( byte ) 0x00 ,( byte ) 0x00 , ( byte ) 0x00 , ( byte ) 0x00 , ( byte ) 0x00 ,( byte ) 0x00 , ( byte ) 0x00 , ( byte ) 0x00 , ( byte ) 0x00 ,( byte ) 0x00 , ( byte ) 0x00 , ( byte ) 0x00 , ( byte ) 0xc0 ,( byte ) 0x00 , ( byte ) 0x00 , ( byte ) 0x01 , ( byte ) 0xf0 ,( byte ) 0x00 , ( byte ) 0x00 , ( byte ) 0x07 , ( byte ) 0xf0 ,( byte ) 0x0f , ( byte ) 0x00 , ( byte ) 0x1f , ( byte ) 0xe0 ,( byte ) 0x1f , ( byte ) 0x80 , ( byte ) 0x1f , ( byte ) 0xc0 ,( byte ) 0x0f , ( byte ) 0xc0 , ( byte ) 0x3f , ( byte ) 0x80 ,( byte ) 0x07 , ( byte ) 0xe0 , ( byte ) 0x7e , ( byte ) 0x00 ,( byte ) 0x03 , ( byte ) 0xf0 , ( byte ) 0xff , ( byte ) 0x80 ,( byte ) 0x03 , ( byte ) 0xf5 , ( byte ) 0xff , ( byte ) 0xe0 ,( byte ) 0x07 , ( byte ) 0xfd , ( byte ) 0xff , ( byte ) 0xf8 ,( byte ) 0x1f , ( byte ) 0xfc , ( byte ) 0xff , ( byte ) 0xe8 ,( byte ) 0xff , ( byte ) 0xe3 , ( byte ) 0xbf , ( byte ) 0x70 ,( byte ) 0x<strong>de</strong> , ( byte ) 0x80 , ( byte ) 0xb7 , ( byte ) 0x00 ,( byte ) 0x71 , ( byte ) 0x10 , ( byte ) 0x4a , ( byte ) 0x80 ,( byte ) 0x03 , ( byte ) 0x10 , ( byte ) 0x4e , ( byte ) 0x40 ,( byte ) 0x02 , ( byte ) 0x88 , ( byte ) 0x8c , ( byte ) 0x20 ,( byte ) 0x05 , ( byte ) 0x05 , ( byte ) 0x04 , ( byte ) 0x40 ,( byte ) 0x02 , ( byte ) 0x82 , ( byte ) 0x14 , ( byte ) 0x40 ,( byte ) 0x02 , ( byte ) 0x40 , ( byte ) 0x10 , ( byte ) 0x80 ,( byte ) 0x02 , ( byte ) 0x64 , ( byte ) 0x1a , ( byte ) 0x80 ,( byte ) 0x00 , ( byte ) 0x92 , ( byte ) 0x29 , ( byte ) 0x00 ,( byte ) 0x00 , ( byte ) 0xb0 , ( byte ) 0x48 , ( byte ) 0x00 ,( byte ) 0x00 , ( byte ) 0xc8 , ( byte ) 0x90 , ( byte ) 0x00 ,( byte ) 0x00 , ( byte ) 0x85 , ( byte ) 0x10 , ( byte ) 0x00 ,( byte ) 0x00 , ( byte ) 0x03 , ( byte ) 0x00 , ( byte ) 0x00 ,( byte ) 0x00 , ( byte ) 0x00 , ( byte ) 0x10 , ( byte ) 0 x00});Os bitmaps são <strong>de</strong>senhados no ecrã recorrendo ao raster dos seus bits. Precisamos então <strong>de</strong> dizer ao OpenGLqual será a posição em que <strong>de</strong>ve ser feito o raster da nossa imagem, com recurso à função glRasterPos. A funçãoglRasterPos é po<strong>de</strong> receber 2 ou 3 argumentos, sendo que na primeira o eixo z toma o valor 0. O exemplomostra uma possível utilização da função:gl. glClear ( GL2 . GL_COLOR_BUFFER_BIT | GL2 . GL_DEPTH_BUFFER_BIT );// Bitmap <strong>de</strong> cor Ver<strong>de</strong>gl. glColor3f (0.0f, 1.0f, 0.0 f);for ( int i =0; i < 16; i ++) {// Definir coor<strong>de</strong>nadas do Rastergl. glRasterPos3d (i - 5, 1, i - 5);// Desenhar o bitmap 32 x32 no array <strong>de</strong> bytesgl. glBitmap (32 , 32 , 0f, 0f, 0, 0, fire );}gl. glColor3f (.5f, .5f, .5f);GlUtil . drawGround ( GL2 . GL_LINE_STRIP ,20f, 1f);No exemplo em cima, são <strong>de</strong>senhados 16 bitmaps percorrendo uma diagonal que atravessa o ponto (0, 0, 0).O nosso bitmap é <strong>de</strong>senhado utilizando a função:glBitmap (int width , int height ,float xorig , float yorig ,float xmove , float ymove ,ByteBuffer bitmap );O width e height referem-se ao tamanho em bits do bitmap, no nosso caso 32×32, o xorig e o yorigreferem-se ao offset x e y em relação à posição raster, o xmove e o ymove <strong>de</strong>finem a posição <strong>de</strong> raster quandoo <strong>de</strong>senho terminar e o parâmetro bitmap contém os dados a <strong>de</strong>senhar. Os bits a 1 no nosso bitmap serão69

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

Saved successfully!

Ooh no, something went wrong!