当前位置: 首页 > news >正文

电子商务网站后台模板东莞外贸优化公司

电子商务网站后台模板,东莞外贸优化公司,dedecms网站的源码如何安装,wordpress欣赏Xiao ESP32C3使用oled 0.96实现下雪的功能 雪花下落的时候, 随机生成半径和位置 sandR和sandX,sandY 保存雪花下落位置的时候, 将其周边一圈设置为-1, 标记为有雪花 其他雪花下落的时候, 其他雪花的一圈如果遇到-1, 则停止下落, 并重复2 #include "oled.h" void …

Xiao ESP32C3使用oled 0.96实现下雪的功能

在这里插入图片描述

    1. 雪花下落的时候, 随机生成半径和位置 sandR和sandX,sandY
    1. 保存雪花下落位置的时候, 将其周边一圈设置为-1, 标记为有雪花
    1. 其他雪花下落的时候, 其他雪花的一圈如果遇到-1, 则停止下落, 并重复2
#include "oled.h"
void setup() {// 串口初始化Serial.begin(115200);oled_init();randomSeed(micros());print_vulnerability_init();
}
void run900msTasks() {oled.clearDisplay();playSnowing();oled.display(); // 这放到最后
}
// oled.h
#ifndef __OLED_H_
#define __OLED_H_
#include <Adafruit_SSD1306.h>#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64static Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);
void oled_init() {// oled初始化if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3C for 128x32Serial.println(F("SSD1306 allocation failed"));for (;;); // Don't proceed, loop forever}Serial.println(F("SSD1306 allocation success!!!"));oled.display();delay(500); oled.setTextSize(1);oled.setTextColor(WHITE);oled.setRotation(0);oled.clearDisplay();delay(1000);
}void oled_println(int16_t x, int16_t y, const char *msg) {oled.setCursor(x, y);oled.println(msg);
}struct snow {// 定义落点个数int numPoints = 10;int snows[SCREEN_WIDTH][SCREEN_HEIGHT];int sandX = 0;int sandY = 0; int sandR = 1; // 半径void init() {for (int i=0; i<SCREEN_WIDTH; i++) {for(int j=0; j<SCREEN_HEIGHT; j++) {snows[i][j] = 0;}}random_snow_pos();
}/*** 设置当前的雪花位置*/void setSnow(int x, int y, int r) {sandX = x;sandY = y;sandR = r;}/*** 初始化随机点*/void random_snow_pos() {setSnow(0, random(0, SCREEN_HEIGHT), random(2, 5));}/*** 将下落的雪花放到数组中*/ void snowToSnows() {snows[sandX][sandY] = sandR;}/*** 向右移动*/void move(int distance) {sandX+=distance;}/*** 计算雪花点的周围一圈是否有雪花*/bool collideBorder() {if(sandX >= SCREEN_WIDTH || sandY >= SCREEN_HEIGHT) return true;for (int i = 0; i < numPoints; i++) {float theta = (float)i / numPoints * 2 * PI;int x = sandX + sandR * cos(theta);int y = sandY + sandR * sin(theta);// 不管是-1还是其他, 都算是触底了if(x>=0 && y>=0 && snows[x][y] != 0) return true;}return false;}/*** 设置雪花周边都为-1*/void setSnowEdge() {for (int i = 0; i < numPoints; i++) {float theta = (float)i / numPoints * 2 * PI;int x = sandX + sandR * cos(theta);int y = sandY + sandR * sin(theta);snows[x][y] = -1;}}} snow;void print_vulnerability_init() {for(int i=0; i<SCREEN_HEIGHT; i++) {snow.snows[SCREEN_WIDTH-1][i] = 1;}snow.snows[60][10] = 1;snow.random_snow_pos();
}/*** 根据128*64的数组里面为1的点绘制○
*/
void print_snow() {for (int i=0; i<SCREEN_WIDTH; i++) {for(int j=0; j<SCREEN_HEIGHT; j++) {if(snow.snows[i][j] <= 0) {continue;} else {oled.fillCircle(i, j, snow.snows[i][j], WHITE);} }}
}/*** 模拟漏斗
*/
void playSnowing() {int while_i = 0;Serial.print(",");Serial.print(snow.sandX);Serial.print(",");Serial.println(snow.sandY);while(snow.collideBorder()) {snow.snowToSnows();snow.setSnowEdge();snow.random_snow_pos();while_i ++ ;if(while_i == 100) {snow.init();break;}}// 绘制沙子的点oled.fillCircle(snow.sandX, snow.sandY, snow.sandR, WHITE);// 沙子移动snow.move(1);print_snow();
}/*** 1. 雪花下落的时候, 随机生成半径和位置 sandR和sandX,sandY* 2. 保存雪花下落位置的时候, 将其周边一圈设置为-1, 标记为有雪花* 3. 其他雪花下落的时候, 其他雪花的一圈如果遇到-1, 则停止下落, 并重复2*/ #endif
http://www.15wanjia.com/news/175995.html

相关文章:

  • 网站规划与建设与安全管理asp网站模板下载
  • 贵阳做网站的公司有哪些北京skp
  • 做网站枣庄网站建设中html5源码
  • 网站域名不想实名认证ai工具推荐
  • 网站维护与建设合同免费做网站有哪些
  • 免费网站怎么注册武钢建设公司网站
  • 做app和做网站那个难香奈儿网站设计分析
  • 网站关键词扩展做百度手机网站
  • 免费简历制作app优化方案英语2024版答案
  • 学习网站建设最简单的书公司网站内容如何做
  • 最好的建设网站百度seo关键词排名价格
  • 外贸网站建设系统返利网站程序
  • 凡科网站制作教程杭州关键词排名工具
  • 长沙网页制作网站程序员培训班
  • 公司网站后台模板高州网站开发公司
  • 百度网盟推广的 合作网站食品网站设计方案
  • 东莞长安网站设计公司网络营销是什么基础类型
  • 专做美食的网站青海省建设厅职业注册官方网站
  • 兰州网站维护公司wordpress变更域名插件
  • 安徽省住房和建设厅门户网站网站开发培训内容
  • 网站建设人员的组织wordpress相册滑动
  • 网站 建设 公司常见的pc端网站布局
  • 建设银行国管公积金管理中心网站wordpress后台很卡
  • 淘宝客优惠券网站建设教程电商网站目录优化
  • wap网站实例线上编程
  • 给网站做路由莘县制作网站
  • 电脑网站模版中国室内设计
  • 网页设计网页标签图标怎么做上海网络seo优化公司
  • 直接进入网站的代码淮安市工程造价信息网
  • 海安网站设计南京房地产开发公司