基于行空板K10的科赫雪花
本帖最后由 洪艳科技 于 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() {}
四、实现效果
https://www.bilibili.com/video/BV1LCNUeiEPL/?vd_source=eb4ecdbf6ce5e9c78823117879e1d75a
页:
[1]