本帖最后由 洪艳科技 于 2025-2-9 19:59 编辑
一、项目背景在《义务教育信息科技课程标准(2022年版)》"身边的算法"模块中,五年级要求通过观察生活现象认识算法特征。科赫雪花作为经典分形图案,其递归生成过程直观展示算法核心要素——循环结构与函数调用。结合行空板K10的图形显示与LED交互功能,可构建虚实结合的算法教学场景。 二、项目目标计算思维: 1.掌握递归算法中的问题分解策略 2. 建立"分割-替换-迭代"的几何变换算法模型 数字化学习与创新: 1.用Python实现分形可视化 2. 通过行空板LED阵列同步展示迭代过程 信息意识: 1.感知分形周长/面积悖论现象 2. 建立"有限面积产生无限周长"的数据表征意识 数字社会责任: 1.正确操作开源硬件电子元件 2. 遵守实验室安全用电规范 三、项目实施
1.所需器材
行空板K10
2.实现功能
在屏幕中实时显示科赫雪花分型树
3.程序编写
- #include <TFT_eSPI.h>
- TFT_eSPI tft = TFT_eSPI();
-
-
- void drawFractalTree(int x0, int y0, float angle, float length, int depth);
-
-
- #define MAX_DEPTH 9
- #define INIT_LEN 60
- #define ANGLE 30
- #define RATIO 0.68
-
- void setup() {
- tft.init();
- tft.setRotation(2);
- tft.fillScreen(TFT_SKYBLUE);
-
-
- drawFractalTree(120, 300, -90, INIT_LEN, MAX_DEPTH);
- }
-
-
- void drawFractalTree(int x0, int y0, float angle, float length, int depth) {
- if (depth <= 0) return;
-
- int x1 = x0 + length * cos(angle * DEG_TO_RAD);
- int y1 = y0 + length * sin(angle * DEG_TO_RAD);
-
- uint16_t color = depth > 2 ? TFT_BROWN : TFT_GREEN;
- tft.drawLine(x0, y0, x1, y1, color);
-
- drawFractalTree(x1, y1, angle - ANGLE, length*RATIO, depth-1);
- drawFractalTree(x1, y1, angle + ANGLE, length*RATIO, depth-1);
-
- if(depth > 2){
- drawFractalTree(x1, y1, angle, length*RATIO*0.8, depth-1);
- }
- }
-
- void loop() {}
复制代码
四、实现效果
|