如何在 Racket 中制作变色的天空?
How to make a color changing sky in Racket?
我有一个变量可以控制(颜色 R、G、B)中蓝色的数量。现在我对如何在(颜色 R、G、B)中使用该变量感到困惑。另外,我对球拍完全陌生。我知道我可以将这些功能组合在一起,但我不知道如何:(这段代码的目的是在动画中制作一个变色场景。
这是我的代码:
(需要 2htdp/图像)
(定义(天色数)
(余数 510))
(定义(天空颜色数)
(abs(- 255(Skycolor num))))
(定义(天空颜色数)
(颜色 0 0 (天空颜色数)))
(定义(天空数)
(square 200 "solid" (color 0 0 (sky-color num)))))
不太清楚“变色”是什么意思,但您可以从以下代码中获得一些启发。另请参阅 this similar question, where I explain how animate
作品。
#lang racket
(require 2htdp/universe)
(require 2htdp/image)
(define speed 5)
(define (sky-color ticks)
(color 0 (modulo (* speed (- 255 ticks)) 255) 255))
(define bg
(empty-scene 125 125))
(define (make-sky ticks)
(square 250 "solid" (sky-color ticks)))
(define (draw-image ticks)
(place-image (make-sky ticks) 0 0 bg))
(animate draw-image)
我有一个变量可以控制(颜色 R、G、B)中蓝色的数量。现在我对如何在(颜色 R、G、B)中使用该变量感到困惑。另外,我对球拍完全陌生。我知道我可以将这些功能组合在一起,但我不知道如何:(这段代码的目的是在动画中制作一个变色场景。 这是我的代码:
(需要 2htdp/图像)
(定义(天色数) (余数 510))
(定义(天空颜色数) (abs(- 255(Skycolor num))))
(定义(天空颜色数) (颜色 0 0 (天空颜色数)))
(定义(天空数) (square 200 "solid" (color 0 0 (sky-color num)))))
不太清楚“变色”是什么意思,但您可以从以下代码中获得一些启发。另请参阅 this similar question, where I explain how animate
作品。
#lang racket
(require 2htdp/universe)
(require 2htdp/image)
(define speed 5)
(define (sky-color ticks)
(color 0 (modulo (* speed (- 255 ticks)) 255) 255))
(define bg
(empty-scene 125 125))
(define (make-sky ticks)
(square 250 "solid" (sky-color ticks)))
(define (draw-image ticks)
(place-image (make-sky ticks) 0 0 bg))
(animate draw-image)