当前位置:网站首页>玩转OLED,U8g2动画,增长数字和随机三角形等
玩转OLED,U8g2动画,增长数字和随机三角形等
2022-06-27 00:10:00 【arenascat】
1.动态数字显示
从逻辑上来说,就是绘制一个实心方块,遮挡上一次绘制的内容,然后再绘制这一次的。
//动画数字效果
void dynamicNum(int x, int y, int num)
{
int i;
for (i = 0; i < num; i++)
{
u8g2.setDrawColor(0);
u8g2.drawBox(x, 10, 60, 60);
u8g2.setCursor(x, y);
u8g2.setDrawColor(1);
u8g2.print(i);
u8g2.drawBox(0, 63 - 3, (127 / 100) * i, 3);
u8g2.sendBuffer();
delay(2);
}
}2.三角形的绘制
这一个算法就是画一个等边三角形,本来是这样的,但我加了伪随机数,于是就变成了一个乱飞的三角形
random(int i)函数,用于生成从0到i的一个数字
void animateG(int x, int y, int r)
{
int rd1 = random(2);
int rd2 = random(3);
int rd3 = random(3);
int rd4 = random(3);
int rd5 = random(3);
int rd6 = random(2);
u8g2.drawLine(x * rd1, (y - r * 2 / 3) * rd2, (x + r / sqrt(3)) * rd3, (y + r / 3) * rd4);
u8g2.drawLine((x + r / sqrt(3)) * rd3, (y + r / 3) * rd4, (x - r / sqrt(3)) * rd5, (y + r / 3) * rd6);
u8g2.drawLine((x - r / sqrt(3)) * rd5, (y + r / 3) * rd6, x * rd1, (y - r * 2 / 3) * rd2);
}3.屏幕关闭效果
类似老电视的那种显像管失电后十字关闭的效果,我是想模仿这个的。
void close()
{
u8g2.clear();
u8g2.drawBox(0, 63 / 2 - 3, 127, 6);
u8g2.drawBox(127 / 2 - 3, 0, 6, 63);
u8g2.sendBuffer();
delay(3);
u8g2.clear();
u8g2.drawBox(0, 63 / 2 - 2, 127, 4);
u8g2.drawBox(127 / 2 - 2, 0, 4, 63);
u8g2.sendBuffer();
delay(3);
u8g2.clear();
u8g2.drawBox(0, 63 / 2 - 1, 127, 2);
u8g2.drawBox(127 / 2 - 1, 0, 2, 63);
u8g2.sendBuffer();
delay(3);
u8g2.clear();
}边栏推荐
- 深度学习方法求解平均场博弈论问题
- 自定义MVC(导成jar包)+与三层架构的区别+反射+面试题
- Record a bug caused by a line break
- MATLAB data type - character type
- 这3个并发编程的核心,竟然还有人不知道?
- Safe and cost-effective payment in Thailand
- [vscode] setting sync, a plug-in for synchronizing extensions and settings
- Can I open an account for stock trading on my mobile phone? Is it safe to open an account for stock trading on the Internet
- 全网最全的混合精度训练原理
- Can I open an account for stock trading on my mobile phone? Is it safe to open an account for stock trading on the Internet
猜你喜欢

Oracle 數據庫基本知識概念

基于SSMP的宠物医院管理系统

Pet hospital management system based on SSMP

万字详解-MindArmour 小白教程!

The most complete hybrid precision training principle in the whole network

Technical dry goods | top speed, top intelligence and minimalist mindspore Lite: help Huawei watch become more intelligent

Kubernetes visual interface dashboard

【Vscode】预览md文件
![自定义JSP[if,foreach,数据,select]标签](/img/a2/fc75c182d572d86f4466323e31d6c3.png)
自定义JSP[if,foreach,数据,select]标签

简单快速的数网络(网络中的网络套娃)
随机推荐
当Transformer遇见偏微分方程求解
【Vscode】预览md文件
超硬核!华为智慧屏上的家庭相册竟可以自动精准分类?
Safe and cost-effective payment in Thailand
Lambda表达式
数据库面试题+sql语句解析
2022年地理信息系统与遥感专业就业前景与升学高校排名选择
xml学习笔记
Serial port debugging tool mobaxtermdownload
温故知新--常温常新
【Mysql】时间字段默认设置为当前时间
Freescale 单片机概述
复杂数据没头绪?
接口测试框架实战(一) | Requests 与接口请求构造
全網最全的混合精度訓練原理
光谱共焦如何测量玻璃基板厚度
MATLAB data type - character type
气液滑环与其他滑环的工作原理有什么区别
目标追踪拍摄?目标遮挡拍摄?拥有19亿安装量的花瓣app,究竟有什么别出心裁的功能如此吸引用户?
技术干货|什么是大模型?超大模型?Foundation Model?