洪艳科技 发表于 2025-2-9 19:59:59

基于行空板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]
查看完整版本: 基于行空板K10的科赫雪花