Bestioles en Javascript

. lecture : 2 minutes

J'essaye de me mettre à dessiner en javascript, grâce à l'élément <canvas>. Pour le moment, je tâtonne : j'ai trouvé comment dessiner des cercles, des traits… Le site Dive Into HTML5 est une bonne introduction.

Mais après avoir essayé de dessiner une petite bestiole en 2D, je me suis retrouvé avec deux cercles, et quelques traits pour le corps et les bras.

premier essai javascript et canvas

En clair, ça soûle rapidement. J'ai donc commencé à chercher des librairies javascript pour rendre le dessin plus facile à réaliser, et j'ai trouvé Raphaël.

Raphaël propose de nombreuses fonctions de dessin et d'animation; les traits peuvent être définis comme dans un fichier SVG, par exemple M 100 100 L 300 100 L 200 300 z pour dessiner un triangle :

  1. Move to (aller au point) 100,100
  2. Line to (tracer jusqu'au point) 300,100
  3. Line to 200,300
  4. et "z" pour fermer la figure (c.à.d retourner au point 100,100)

Prochaine étape donc, utiliser Raphël pour dessiner une bestiole, par exemple un moustique (vu de haut). Ensuite, je tenterai de l'animer.

Si j'arrive à compléter le projet que j'ai en tête, j'espère que javascript sera assez rapide pour rendre les animations fluides.

Commentaires

1. le 28 juin 2011 (11 h 51), par Fabien :

Autre possibilité: utiliser une couche d'abstraction du type "Dojo GFX"

http://dojotoolkit.org/reference-guide/dojox/gfx.html

Ca permet d'avoir une API unique, et de choisir son implémentation ensuite, voir meme de choisir automatiquement l'implementation selon les possibilités offertes par le client (Silverlight sur IE, HTML5 sous chrome/firefox par exemple)

Tres pratique, et en plus on peut beneficier du modele objet pour creer des formes héritant d'autres, assez utile par exemple pour créer des schemas (eg: "rounded box" hérite de "box" en ajoutant simplment des coins arrondis)

Réponse de Manu

Cool, merci pour le lien !

2.Commentaire de l'auteur, le 28 juin 2011 (13 h 59) :

Paper.js aussi à l'air prometteur !

L'ajout de commentaires est désactivé.