[racket] use plot as render in universe

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Sun Aug 11 12:34:58 EDT 2013

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>

Posted on the users mailing list.