Я пытаюсь разместить вертикально расположенный прямоугольник и другой объект на пустой сцене, используя изображения мест на языке для начинающих студентов. Однако, когда я запускаю функцию, прямоугольник занимает только половину сцены по горизонтали, если его ширина установлена равной ширине сцены.
Я проверил, что происходит с моим кодом с помощью 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. Меня также интересуют элегантные альтернативы для реализации этого, но больше всего мне интересно узнать, почему это происходит.