52浏览
查看: 52|回复: 0

[K10项目分享] 基于行空板K10的科赫雪花

[复制链接]
本帖最后由 洪艳科技 于 2025-2-9 19:59 编辑

一、项目背景
在《义务教育信息科技课程标准(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









您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail