LuGo – A vector graphics API for GWT


LuGo bietet eine Abstraktionsschicht über die derzeitigen, nativ unterstützten Vektorgrafik-Technologien SVG / VML. Ziel dabei ist Transparenz: Der Entwickler soll, unabhängig von der Browserplattform, Vektorgrafiken mittels JavaScript erstellen und in die Webseite einbinden können.

Lugo vs. Canvas

Kriterium LuGo Canvas
EventHandling einfach schwierig
Basiskonzept geom. Objekte – Shapes Pixels
Scenegraph über DOM implizit verfügbar kein Graph, da scriptable <img>
Browserunterstützung A-Grade, inkl. IE A-Grade, jedoch IE nur über Workaround (ExplorerCanvas)
Text volle Unterstützung kein direktes Rendering von Text
Animation Animieren der Shapes Rerendering des Inhaltes

Code Beispiel

     Canvas canvas = new Canvas(500, 500);

      //Create a rectangle at point {10, 10} with dimension {200, 100}
      Rectangle myRect = new Rectangle(10, 10, 200, 100);

      canvas.add(myRect);

      //set blue fillingcolor
      myRect.setFill( new SolidFill( Color.BLUE ) );

      //set Transparency
      myRect.setOpacity(80);

      //Transformations  e.g. rotation at a specific point
      myRect.rotateAt(90, new Point(250, 250) );

      //Enabling zoom and pan support
      CanvasZoomPanWrapper zoomPan = new CanvasZoomPanWrapper(canvas, true, true);

      //add event listener (zb: zoom Event)
      zoomPan.addZoomEventHandler( new ZoomEventHandler(){

           public void onZoom(int zoomLevel){

                //change opacity
                myRect.setOpacity( zoomLevel * 100 );
           } 

      });

Testcase

Ressources

Source via SVN:

svn checkout http://lugo.googlecode.com/svn/trunk/ lugo-read-only

,

Kommentare sind abgeschaltet.