[racket] use plot as render in universe
On Aug 10, 2013, at 7:04 PM, J G Cho wrote:
> I get an error (somewhat expectedly) when I try
>
> (big-bang init
> (on-tick random-walk 1)
> ;(on-key door-actions)
> (to-draw plot-render)
> ))
>
> where plot-render is defined as
>
> (define (plot-render world)
> (p:plot (p:lines
> (world->list-of-vectors world)
> #:color 6 #:label "Random walk")))
>
> with the following at the top
>
> (require (prefix-in p: plot))
>
> The error msg is
>
> plot: could not determine sensible plot bounds; got x ∈ [0,0], y ∈ [1,1]
>
> Is there way to let plot know of the context? Or pass a context to plot and extract the pixels and hand it over to via some proc in 2htdp/image? Or maybe there is a simple way?
This works like a charm for me:
#lang racket
(require (prefix-in p: plot) 2htdp/universe)
(define (plot-render world)
(p:plot (p:lines (world->list-of-vectors world)
#:color 6 #:label "Random walk")))
(define (world->list-of-vectors world)
`(#(1 3) #(2 -2) #(4 3)))
(define (random-walk world)
'more-dummy)
(big-bang 'dummy ; init
(on-tick random-walk 1)
(to-draw plot-render))
;; ---
When I had a student implement the first plot version, I intentionally made sure that plot returned something I could use in big-bang.
And btw, this works too:
#lang racket
(require (prefix-in p: plot) 2htdp/universe 2htdp/image)
(define (plot-render world)
(overlay
(p:plot (p:lines (world->list-of-vectors world)
#:color 6 #:label "Random walk"))
(square 800 'solid 'blue)))
(define (world->list-of-vectors world)
`(#(1 3) #(2 -2) #(4 3)))
(define (random-walk world)
'more-dummy)
(big-bang 'dummy ; init
(on-tick random-walk 1)
(to-draw plot-render))
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20130811/24f6853a/attachment.html>