Hi Kashyap,

> Rendering graphics is a requirement that I keep running into. While
> HTML5/Canvas is perhaps the most portable way to render graphics today but
> you have to submit to the restrictions imposed by Javascript in a browser

I do a lot of canvas stuff in PicoLis (not much published though). But there are
some articles in picolisp.com, just enter "canvas" in the search field.

@lib/canvas.l allows you to write graphics completely in Lisp, and I use it also
in some applications together with @lib/gis.l and OpenStreetMap. For a very
simple demo, you can try the attached example.

☺/ A!ex
# 09oct18abu
# (c) Software Lab. Alexander Burger

(allowed ()
   "!home" "@lib.css" )

(scl 6)
(load
   "@lib/http.l" "@lib/xhtml.l" "@lib/form.l"
   "@lib/math.l" "@lib/gis.l" )

(symbols '(pico gis))

(setq *Osm (cons))

(de home ()
   (and (app) *Port% (redirect (baseHRef) *SesId *Url))
   (action
      (html 0 "OpenLayers" "@lib.css" NIL
         (form NIL
            (<osm> 138.490790 190.849132 19
               '((Lat Lon)  # Click
                  (msg (cons Lat Lon)) ) )
            (<poi> 138.490790 190.849132
               "@img/go.png" "0.1" "1.0"
               "NW-Ecke" -20 "black"
               "http://software-lab.de";
               '((Txt Lat Lon)  # Drag
                  (set> (: txt) Txt)
                  (set> (: lat) Lat)
                  (set> (: lon) Lon) ) )
            (<poi> 138.490744 190.849328
               "@img/go.png" "0.1" "1.0"
               "SE-Ecke" -20 "black" )
            (<poi> 138.491698 190.852213
               "@img/go.png" "0.1" "1.0"
               "Sonnenstraße" -20 "black" )
            (<line> "red"
               138.490790 190.849132
               138.490744 190.849328 )
            (--)
            (gui 'txt '(+Lock +TextField) 11)
            (gui 'lat '(+Lock +LatField) 11)
            (gui 'lon '(+Lock +LonField) 11) ) ) ) )

(de main ()
   (symbols '(pico gis)) )

(de go ()
   (server 8080 "!home") )

# vi:et:ts=3:sw=3

Reply via email to