|
[项目] 【花雕学编程】Arduino动手做(249)--GC9A01屏39个特色案例 |
代码说明 1、双螺线反向旋转: 使用 direction 参数控制螺线旋转方向,一条顺时针旋转,另一条逆时针旋转。 2、随机变色: 每帧为两条螺线随机选择颜色,增强动画的多样性和视觉冲击力。 3、动态极坐标更新: 极坐标公式 $r = a\theta$ 与旋转角度结合,使螺线保持平滑的动态扩展和旋转。 4、流畅动画: 每帧清屏并重新绘制两条螺线,旋转角度每次增加 ROTATION_SPEED,保证动画自然流畅。 5、效果描述 屏幕中央绘制两条动态旋转的阿基米德螺线,一条顺时针旋转,另一条逆时针旋转。 每帧螺线的颜色随机切换,展现五彩斑斓的效果。 整体视觉充满动感,适合作为数学几何或动态艺术的展示。 |
【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百四十九:1.28寸圆形彩色TFT显示屏 高清IPS 模块 240*240 SPI接口GC9A01驱动 项目实验之三十八:多彩动态旋转的多条对数螺 实验开源代码
|
代码说明 1、多螺线动态旋转: 同时绘制 SPIRAL_COUNT 条对数螺线,每条螺线具有不同的相位偏移,形成复杂的几何图案。 2、随机颜色切换: 每帧为螺线随机分配颜色,使动画充满多样性。 3、对数螺线生成: 采用对数公式 $r = a e^{b\theta}$,实现平滑扩展的螺线形状。 4、平滑动画: 旋转角度 rotationAngle 每帧更新,动态变化自然,延迟 100ms 控制帧速率。 5、效果描述 屏幕中央显示多条对数螺线,旋转时螺线的颜色动态变化,视觉效果华丽。 每条螺线的初始角度不同,图案具有对称性和层次感。 动态旋转螺线形成复杂的几何艺术,非常适合圆形屏幕展示。 |
【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百四十九:1.28寸圆形彩色TFT显示屏 高清IPS 模块 240*240 SPI接口GC9A01驱动 项目实验之三十九:模拟手表时钟指针、数字时间显示、日期窗口和装饰性刻度 实验开源代码
|
代码说明 1、复杂表盘设计: 多层刻度:包括小时刻度和分钟刻度。 双功能显示:模拟指针显示和数字时间显示同时存在。 2、动态时间更新: 时间每秒更新,分针和时针会根据当前时间调整位置。 3、多色指针: 不同颜色用于区分秒针(红色)、分针(绿色)和时针(白色)。 4、装饰性圆圈: 表盘边缘绘制多层圆圈,增强设计美感。 5、时间和日期显示: 在表盘底部显示当前时间和固定的日期信息。 6、效果描述 表盘中央模拟指针式时钟,刻度和指针分明,色彩丰富。 底部数字显示当前时间和固定日期信息,结合现代和经典设计。 动态更新的时间显示,让表盘实时变化。 |
代码解读 1、屏幕初始化
引入 SPI 和 Adafruit_GFX 库,用于图形绘制功能。 引入 Adafruit_GC9A01A 库,专用于驱动 GC9A01A 圆形屏幕,提供绘制圆形、线条、文字等能力。 2、屏幕硬件配置
TFT_CS、TFT_DC 和 TFT_RST 是屏幕的引脚定义。 TFT_RST 为 -1,表示未使用复位引脚。 使用 Adafruit_GC9A01A 初始化屏幕对象 tft。 3、 屏幕中心和表盘参数
定义屏幕中心 (120, 120),适配 GC9A01A 的圆形屏幕(分辨率 240x240 像素)。 表盘半径设置为 100 像素,指针颜色设为白色。 4、时间变量初始化
时间初始化为 01:42:00。 5、绘制表盘的功能 5.1 绘制表盘外圈
绘制两个同心圆,形成表盘外圈,分别使用白色和青色,增加美感。 5.2 绘制小时刻度
使用 cos 和 sin 函数计算小时刻度位置(角度每小时增加 30°)。 两点 (x1, y1) 和 (x2, y2) 通过 drawLine 绘制刻度线。 5.3 绘制分钟刻度
使用 cos 和 sin 函数计算分钟刻度位置(角度每分钟增加 6°)。 每 5 分钟避开小时刻度,仅绘制点刻度。 6、绘制指针的功能 6.1 时针
根据当前时间计算时针角度: 每小时角度增量为 30°,并加入分钟的偏移。 时针长度为半径减 50 像素。 6.2 分针
分针角度每分钟增加 6°,同时加入秒数偏移。 分针长度为半径减 30 像素。 6.3 秒针
秒针角度每秒增加 6°。 秒针长度为半径减 20 像素。 7、显示数字时间
显示数字时间,格式为 01:42:00,居中显示在表盘下方。 8、更新时间
每秒更新时间变量,并递归处理分钟和小时的变化。 9、主循环
清除上一帧内容,绘制表盘、指针和数字时间,并更新时间。 以每秒 (delay(1000)) 的速率刷新表盘内容。 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed