[plt-scheme] Is this the correct behaviour for add-line?

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Wed Dec 6 15:53:09 EST 2006

On Dec 6, 2006, at 3:38 PM, Chris Stephenson wrote:

> DrScheme Help says that the world.ss add-line function (unlike the
> image.ss add-line)  only draws the part of the line that lies  
> within the
> boundaries of the scene.
>
> So I thought trying to draw a very long line should not cause a  
> problem
> - it should simply be truncated.
>
> My experiments seem to show that this results in a "cannot make n x n
> image" error, where n is the large co-ordinate of the line.

Correct. I draw the line in the image and then shrink the image. I  
should do better -- Matthias



> My test code is attached.
>
> Here is the output:
> Welcome to DrScheme, version 360.
> Language: Pretty Big (includes MrEd and Advanced Student).
> Teachpack: /usr/lib/plt/collects/teachpack/htdp/world.ss.
> #t
> . cannot make 10001 x 10001 image
>>
>
>
>
>
> ;; data definition world
> ;; canvas - what we are drawing on
> ;; objects - a list of the images we are drawing
> (define-struct world (canvas objects))
>
>
> ;; data definition canvas
> ;; scene: Scene
> ;; width: number
> ;; height: number
> (define-struct canvas (scene width height))
>
> ;; draw
> ;; World -> Scene
> ;; place the images in the scene.
> ;; template
> ;; (lambda (w)
> ;;    (.... (world-canvas w)... (world-object w)...)
> (define draw
>   (lambda (w)
>     (add-line (canvas-scene (world-canvas w)) 0 0 10000 10000  
> 'black)))
>
> (big-bang 1000 680  0.1 (make-world (make-canvas (empty-scene 1000  
> 680) 1000 680)
>                                     null))
> (on-redraw draw)
> _________________________________________________
>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme



Posted on the users mailing list.