Sorry I'm late. :D

You can make your plots more robust to "can't determine bounds" errors by including an `invisible-rect' or `invisible-rect3d' renderer in the plot, with fully specified (i.e. non-#f) bounds. The plots' bounds will always include the invisible rectangle.

Another option is to explicitly pass #:x-min, #:x-max, etc. keyword arguments to `plot'. Any bounds you set that way will be fixed.

Do you mind if I ask what you're up to?

Neil ⊥

On 08/11/2013 01: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
<matth...@ccs.neu.edu <mailto:matth...@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))




____________________
   Racket Users list:
   http://lists.racket-lang.org/users


____________________
 Racket Users list:
 http://lists.racket-lang.org/users

Reply via email to