基于行空板K10的科赫雪花

2025-02-093030
AI 快速预览详细 收起
基于行空板K10的科赫雪花项目,旨在通过Python编程实现分形图案的可视化。该项目利用行空板K10的图形显示与LED交互功能,展示递归算法的核心要素。通过这个项目,五年级学生可以掌握递归算法中的问题分解策略,建立“分割-替换-迭代”的几何变换算法模型。最终效果是在屏幕中实时显示科赫雪花分形树,提升学生的计算思维和数字化学习能力。


一、项目背景
在《义务教育信息科技课程标准(2022年版)》"身边的算法"模块中,五年级要求通过观察生活现象认识算法特征。科赫雪花作为经典分形图案,其递归生成过程直观展示算法核心要素——循环结构函数调用。结合行空板K10的图形显示与LED交互功能,可构建虚实结合的算法教学场景。
二、项目目标
计算思维:      
1.掌握递归算法中的问题分解策略
2. 建立"分割-替换-迭代"的几何变换算法模型
数字化学习与创新:      
1.用Python实现分形可视化
2. 通过行空板LED阵列同步展示迭代过程
信息意识:      
1.感知分形周长/面积悖论现象
2. 建立"有限面积产生无限周长"的数据表征意识
数字社会责任:      
1.正确操作开源硬件电子元件
2. 遵守实验室安全用电规范
三、项目实施
1.所需器材
行空板K10
基于行空板K10的科赫雪花图1
2.实现功能
在屏幕中实时显示科赫雪花分型树

3.程序编写
  1. #include <TFT_eSPI.h>
  2. TFT_eSPI tft = TFT_eSPI();
  3. void drawFractalTree(int x0, int y0, float angle, float length, int depth);
  4. #define MAX_DEPTH 9
  5. #define INIT_LEN 60
  6. #define ANGLE 30
  7. #define RATIO 0.68
  8. void setup() {
  9.   tft.init();
  10.   tft.setRotation(2);
  11.   tft.fillScreen(TFT_SKYBLUE);
  12.   
  13.   drawFractalTree(120, 300, -90, INIT_LEN, MAX_DEPTH);
  14. }
  15. void drawFractalTree(int x0, int y0, float angle, float length, int depth) {
  16.   if (depth <= 0) return;
  17.   int x1 = x0 + length * cos(angle * DEG_TO_RAD);
  18.   int y1 = y0 + length * sin(angle * DEG_TO_RAD);
  19.   
  20.   uint16_t color = depth > 2 ? TFT_BROWN : TFT_GREEN;
  21.   tft.drawLine(x0, y0, x1, y1, color);
  22.   drawFractalTree(x1, y1, angle - ANGLE, length*RATIO, depth-1);
  23.   drawFractalTree(x1, y1, angle + ANGLE, length*RATIO, depth-1);
  24.   
  25.   if(depth > 2){
  26.     drawFractalTree(x1, y1, angle, length*RATIO*0.8, depth-1);
  27.   }
  28. }
  29. void loop() {}
复制代码

四、实现效果
基于行空板K10的科赫雪花图2









创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -