martedì 13 luglio 2010

Raphaël: grafica vettoriale sul web

La grafica sul web diventa sempre più complessa. Molti si appoggiano a tecnologie come Flash e Silverlight per ottenere effetti grafici sofisticati o anche più semplicemente per fare grafica vettoriale sul web. Eppure è possibile fare grafica vettoriale sul web utilizzando solamente le capacità del browser. Le tecnologie da utilizzare sono VML (Vector Markup Language) su Internet Explorer fino alla versione 8 e SVG (Scalable Vector Graphics) su tutti gli altri browsers. L'esistenza di due tecnologie, equivalenti, ma diverse, complica la vita per chi deve sviluppare grafica vettoriale per tutti i browsers :(

Ma non tutto è perduto!
Dmitry Baranovskiy è arrivato in aiuto e ha creato una fantastica libreria JavaScript che fa da ponte tra le due tecnologie. Questa libreria si chiama Raphaël.
Si tratta di un adapter che con una semplice API dona all'arte del disegno vettoriale la compatibilità cross-browser, poiché questa libreria renderizzerà il nostro disegno vettoriale in VML o SVG a seconda del browser.

Ma perché utilizzare una libreria che usa SVG/VML quando invece per il disegno si fa sempre più diffusa la tecnologia <canvas> dell'HTML 5?

Il motivo sta nel fatto che tutti gli oggetti SVG/VML fanno parte del DOM della pagina web e questo significa che possono essere modificati via script, ovvero è possibile aggangiare a tali oggetti degli event handler come il click, il drag, ecc...

Infine, un altro aspetto interessante di questa libreria è che è stata sviluppata sullo stesso principio di jQuery sia per il modo di accesso all'API che per l'estendibilità tramite plug-ins. Questo rende la libreria immediatamente familiare agli sviluppatori jQuery. Le due librerie possono ovviamente convivere.

Etichette

ajax (1) C# (3) C++ (1) click (1) clickout (1) compilatori (2) gplex (2) gppg (2) html (1) i18n (1) internazionalization (1) javascript (2) jquery (1) lex (2) object oriented (1) plugin (1) programmazione (3) software (4) svg (1) VB (1) vector graphics (1) visual studio (2) vrml (1) web (1) Win32 (1) windows 8 (1) WinRT (1) XAML (1) yacc (2) yacclextools (1)