You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Racket随机点动画练习出现背景堆叠无法正常生成点问题求助

问题原因

  • 模型初始值设置错误,未使用空白屏幕作为初始状态
  • 渲染函数old-dot中每次都叠加白色空白背景,直接覆盖了之前生成的点位
  • 帧更新函数next-dot逻辑混乱,额外调用了会叠加背景的old-dot,导致多层背景堆叠
  • 坐标判断冗余,random 200本身返回0-199的整数,无需额外加min 200逻辑

修正后代码

; 随机点动画
(define DOT
  (circle 4 "solid" "black"))

(define blank-screen
  (rectangle 200 200 "solid" "white"))
 
; 每帧更新:在已有图像的随机位置叠加新的点
(define (next-dot current-image)
  (overlay/xy DOT
              (random 200) (random 200)
              current-image))

; 渲染函数:直接返回当前存储了所有点的图像即可
(define (draw current-image)
  current-image)

(big-bang blank-screen
  (on-tick next-dot 1/2)
  (on-draw draw 200 200))

实现说明

该方案完全符合练习要求:

  • 无任何条件判断、for循环等高级函数使用
  • 模型为存储所有已生成点的图像,每次更新仅新增点位,保留所有历史点位
  • 若需要调整画布大小、初始背景样式,仅需修改blank-screen的定义即可,帧更新和渲染逻辑无需任何改动,满足通用要求

内容的提问来源于stack exchange,提问作者Wondering Minds

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 11:36:01