Blog

Entre um trabalho e outro, às vezes conseguimos escrever alguma coisa...

Criando um relógio no estilo iOS usando o canvas

O canvas é um recurso nativo do HTML5. Ele permite criar uma área dentro da página do site onde é possível desenhar e animar objetos através de programação. Você já deve ter visto alguns exemplos nos doodles do Google, como estes aqui: 151 anos de Debussy e este game que simula uma máquina de Turing.

Veja algumas aplicações do canvas:

Animação:

http://www.thewildernessdowntown.com

Detecção do movimento do mouse:

http://dan.forys.co.uk/experiments/mesmerizer

Manipulação de imagem (clique para explodir a imagem):

http://craftymind.com/factory/html5video/CanvasVideo.html

Como uma ferramenta de desenho:

https://developer.mozilla.org/en-US/demos/detail/ghostwriter-art-studio/launch

Nosso objetivo será construir um relógio no estilo iOS, e ao fim deste post o resultado final será este:

See the Pen vKcrh by Opera House (@operahouse) on CodePen


Origem

O canvas foi inicialmente desenvolvido pela Apple em 2004, como parte de seu WebKit para permitir animações no Dashboard do Mac OS e no navegador Safari. O canvas foi depois adotado em outros navegadores e finalmente foi proposta sua inclusão na especificação HTML5.


O que é canvas ?

Canvas é um elemento HTML5 que suporta elementos gráficos 2D e 3D e possui suporte nos navegadores modernos como Chrome, Firefox, Safari, Opera e IE a partir da versão 9. Este elemento é destinado exclusivamente para desenho, criação e animações gráficas manipulado por linguagens de programação como a JavaScript. As animações neste novo elemento do HTML5 possuem melhor performance em relação a outras tecnologias antigas como Flash, além de serem visíveis no iPhone e iPad e smartphones com sistema Android.

Como utilizar o canvas ?

Implementar o canvas é bem simples:

  1. crie um documento HTML
  2. defina a tag canvas dentro do body do documento:

A especificação do canvas define os atributos ID, WIDTH E HEIGHT para conter a identificação do elemento no documento e as propriedades de altura e largura da área de desenho.

Esses atributos podem ser inseridos no elemento canvas via HTML ou JavaScript. Para demarcar a área do canvas, você pode incluir uma borda, usando CSS. No código abaixo, estamos construindo um canvas de tamanho 200 x 200 píxels identificado como myCanvas e com uma borda preta:


Outro detalhe importante é que você pode escrever qualquer texto dentro da tag (por exemplo "Seu browser não suporta canvas do HTML5"). Se o navegador não possuir suporte para o canvas, o texto será exibido no lugar do canvas e não haverá um erro.

Continuando com o exemplo acima, depois de definir o elemento canvas, vamos selecionar o contexto do nosso canvas, agora utilizando Javascript:


Dessa maneira fica definido que iremos trabalhar com um contexto 2D.


Escrevendo textos com Canvas

É possível escrever texto com o canvas. No código abaixo, vamos escrever "Hello World" dentro do canvas.



Desenhando um círculo com Canvas

No código abaixo, vamos construir um círculo com raio de 70 píxels, usando os métodos beginPath() e arc(). Os métodos fill() e stroke() servirão para preencher o círculo e desenhar sua borda, com as cores escolhidas nas linhas anteriores.




No próximo post iremos iniciar a construção dos primeiros elementos de nosso relógio, aprender alguns conceitos de trigonometria e elaborar a lógica para posicionamento de nossos ponteiros e números, não perca essa oportunidade e confira no link abaixo.

INTRODUÇÃO AO CANVAS

PARTE 2: DESENHANDO OS ELEMENTOS DO RELÓGIO

PARTE 3: ADICIONANDO MOVIMENTO AOS PONTEIROS

PARTE 4: FINALIZANDO O PROJETO


Para ser informado sobre a publicação da continuação, siga-nos no Twitter

Para mais exemplos e tutoriais e aplicações do canvas em HTML5, confira algumas referências em Inglês muito boas, principalmente Html5 Canvas Tutoriais.



Referências :

http://www.html5canvastutorials.com/tutorials/html5-canvas-tutorials-introductionHtml5 Canvas Tutoriais

http://www.w3schools.com/tags/ref_canvas.asp

http://www.script-tutorials.com/category/html5-2/

http://odesenvolvedor.andafter.org/publicacoes/html5-canvas-tutorial-para-iniciantes.html