[racket] off-by-1 pixel error in 2htdp/image
Hi all,
First off, please forgive my coding style -- that is something to
clean up after the functionality is working. Also, please let me know
if there's a better way to attach code or screenshots.
I was writing a bit of code to generate a diagram, and bumped into an
off-by-one error. Not sure whether its in my understanding of or use
of the 2htdp/image library. Testing on DrRacket 5.3.1 on 64-bit linux.
----- begin test.rkt
#lang racket
(require 2htdp/image)
(define (stack wordlist)
(let ((boxes '())
(maxwidth 0))
(for ((w wordlist))
(let* ((txt (text w 24 "black"))
(width (image-width txt)))
(set! boxes (cons txt boxes))
(when (> width maxwidth)
(set! maxwidth width))))
(let ((box (rectangle (* maxwidth 1.2)
(* (image-height (text "Gg" 24 "black")) 1.2)
"outline" "black"))
(img empty-image))
(for ((b boxes))
(set! img (above (overlay box b)
(if (equal? img empty-image)
empty-image
(line 0 15 "black"))
img)))
img)))
(stack '("hello" "world" "1" "2" "3"))
(save-image (stack '("hello" "world" "1" "2" "3")) "stack.png")
----- end test.rkt
The code runs, but there is a one-pixel white gap between each (line 0
15 "black") and the box below it. Also, the anti-aliasing is
rendering the line into the box above it. The save-image output is
attached (and matches a screenshot).
Now the questions. What is the preferred image library in Racket? Am
I misusing 'above, or is there an off-by-1 error in its
implementation? (e.g. in above/internal or overlay/δ in
collects/2htdp/private/image-more.rkt)
Thanks,
Daniel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: stack.png
Type: image/png
Size: 2596 bytes
Desc: not available
URL: <http://lists.racket-lang.org/users/archive/attachments/20121217/ac2dab31/attachment.png>