L'élément en lui-même est un (grand) rectangle vide au départ. Il dispose d'une grosse API (à piloter en JavaScript ou équivalent) pour dessiner à l'intérieur, y mettre des images, y faire du vectoriel, faire des transformations, réagir aux clics de souris, etc. C'est un peu l'équivalent de l'API Java2D. On retrouve le concept dans de nombreuses autres API, par exemple le module Canvas de Qt.
Le but est de pouvoir réaliser des applications purement graphiques (pourquoi pas des jeux, ou des IHM étrangement complexes), quand les autres éléments HTML ne suffisent pas.
C'est à mon sens un des éléments les plus compliqués d'HTML 5, surtout s'il faut en faire une implémentation performante (et il le faut, bien sûr). Ce sera probablement le dernier truc que Microsoft implémentera. ;-)
(Et Adobe doit faire un peu la gueule, même si Flash a de beaux jours devant lui.)
[^] # Re: API pour dessiner des graphiques en deux dimensions
Posté par Boa Treize (site web personnel) . En réponse à la dépêche Le W3C met en route le premier brouillon de HTML 5. Évalué à 4.
L'élément en lui-même est un (grand) rectangle vide au départ. Il dispose d'une grosse API (à piloter en JavaScript ou équivalent) pour dessiner à l'intérieur, y mettre des images, y faire du vectoriel, faire des transformations, réagir aux clics de souris, etc. C'est un peu l'équivalent de l'API Java2D. On retrouve le concept dans de nombreuses autres API, par exemple le module Canvas de Qt.
Le but est de pouvoir réaliser des applications purement graphiques (pourquoi pas des jeux, ou des IHM étrangement complexes), quand les autres éléments HTML ne suffisent pas.
- Tutoriel Mozilla : http://developer.mozilla.org/en/docs/Canvas_tutorial
- Doc Mozilla : http://developer.mozilla.org/en/docs/HTML:Canvas
- Spec (bien épaisse) : http://www.whatwg.org/specs/web-apps/current-work/multipage/(...)
C'est à mon sens un des éléments les plus compliqués d'HTML 5, surtout s'il faut en faire une implémentation performante (et il le faut, bien sûr). Ce sera probablement le dernier truc que Microsoft implémentera. ;-)
(Et Adobe doit faire un peu la gueule, même si Flash a de beaux jours devant lui.)