我正在尝试使用初级学生语言中的放置图像将垂直定位的矩形和另一个对象放置在空白场景中。但是,当我运行该函数时,当矩形的宽度设置为等于场景的宽度时,该矩形仅在水平方向占据一半的场景。
我使用 Stepper 检查了我的代码发生了什么,发现图像宽度减半的位置,但我不知道为什么。可能与我不太熟悉的缺点有关。
这是完整的代码:
(require 2htdp/image)
(define WIDTH 400)
(define HEIGHT 300)
(define HMAX 100)
(define SCENE (empty-scene WIDTH HEIGHT))
(define-struct vcham [x h c])
(define c (make-vcham 0 100 "white"))
(define (render ch)
(place-images (list (rectangle (* 1 WIDTH (/ (vcham-h ch) HMAX)) 50 "solid" "maroon")
(rectangle 1 1 "solid" "blue"))
(list (make-posn 0 0) (make-posn 20 20))
SCENE))
(render c)
我已经尽可能地简化了这段代码,因此是 1×1 矩形。我也对实现这一点的优雅替代方案感兴趣,但最感兴趣的是找出为什么会发生这种情况。