11.07.2015 Views

Programando em NCL 3.0.pdf - Telemidia - PUC-Rio

Programando em NCL 3.0.pdf - Telemidia - PUC-Rio

Programando em NCL 3.0.pdf - Telemidia - PUC-Rio

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

local regLarg, regAlt = canvas:attrSize()local img = canvas:new('ginga.png')local imgLarg, imgAlt = img:attrSize()local imgX = (regLarg - imgLarg) / 2local imgY = (regAlt - imgAlt) / 2canvas:compose(imgX, imgY, img)local txt = 'TV Digital se faz com Ginga'local txtLarg, txtAlt = canvas:measureText(txt)local txtX = (regLarg - txtLarg) / 2local txtY = imgY + imgAlt + 2canvas:attrColor('white')canvas:drawText(txtX, txtY, txt)canvas:flush()Listag<strong>em</strong> 18.13 Script ilustrando o uso do canvas.O script da Listag<strong>em</strong> 18.13 começa guardando as dimensões da regiãointeira do <strong>NCL</strong>ua nas variáveis regLarg e regAlt com a chamada à funçãocanvas:attrSize(), que retorna a largura e a altura do canvas. Em seguida,o método canvas:new() recebe uma imag<strong>em</strong> e retorna um novo canvas,“img”, que a representa. As dimensões da imag<strong>em</strong> são então recuperadas eutilizadas para calcular a posição centralizada na qual a imag<strong>em</strong> é desenhadana região (imgX e imgY). A chamada canvas:compose(imgX,imgY,img)sobrepõe a imag<strong>em</strong> do Ginga à região do <strong>NCL</strong>ua na posição informada. 4Para desenhar a legenda do texto, primeiramente é medido o tamanho que otexto ocupa no canvas, com a chamada à canvas:measureText(). Aposição horizontal centralizada do texto é calculada de maneira similar à daimag<strong>em</strong>. Já sua posição vertical é calculada para um pouco abaixo daimag<strong>em</strong>. Por fim, a chamada a canvas:attrColor('white') altera oatributo de cor para branco, <strong>em</strong> futuras operações sobre o canvas, para entãodesenhar o texto na posição calculada. Apenas com a chamada à funçãocanvas:flush() as operações gráficas descritas são de fato efetuadas.Como se pode deduzir ao observar o ex<strong>em</strong>plo, um objeto canvas guarda<strong>em</strong> seu estado diversos atributos sob os quais as primitivas gráficas dev<strong>em</strong>operar. Os atributos são acessados através de métodos de prefixo attr4 As coordenadas passadas para todos os métodos gráficos são s<strong>em</strong>pre relativas ao ponto mais àesquerda e no topo do canvas (0,0), como é comum entre sist<strong>em</strong>as gráficos.388

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

Saved successfully!

Ooh no, something went wrong!