[racket] use plot as render in universe

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

Tests your functions. Use Rackunit Luke. 

On Aug 11, 2013, at 3:40 PM, J G Cho wrote:

> Thanks for the assurance. It helped me to focus on my world->list-of-vectors It turns out it did not return enough vectors (at least 2, I think) for initial-world.
> 
> 
> 
> 
> On Sun, Aug 11, 2013 at 12:34 PM, Matthias Felleisen <matthias at ccs.neu.edu> wrote:
> 
> 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/6bea3ea0/attachment.html>

Posted on the users mailing list.