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

新余做网站的优化关键词的方法正确的是

新余做网站的,优化关键词的方法正确的是,东莞专业网站推广策划,去哪找想做网站的客户1 meter介绍 lv_meter 是 LVGL v8 引入的一种图形控件,用于创建仪表盘样式的用户界面元素,它可以模拟像速度表、电压表、温度表这类模拟表盘。它通过可视化刻度、指针、颜色弧线等来展示数值信息,是一种非常直观的数据展示控件。 1.1 核心特…

1 meter介绍

lv_meter 是 LVGL v8 引入的一种图形控件,用于创建仪表盘样式的用户界面元素,它可以模拟像速度表、电压表、温度表这类模拟表盘。它通过可视化刻度、指针、颜色弧线等来展示数值信息,是一种非常直观的数据展示控件。

1.1 核心特性

  1. 支持多个 刻度刻度表(scale)

  2. 每个刻度表可以有多个 刻度(tick)

  3. 每个刻度可以添加多个 指针(needle/arc/image)

  4. 支持多种类型的指针:线针、弧线、图像

  5. 可以设置 最小值/最大值 和 角度范围

  6. 动态更新数据值,模拟实时仪表

1.2 lv_meter 的结构组成

在逻辑上,lv_meter 由三个核心部分组成:

  1. 刻度盘(scale)
    是整个仪表盘的“底盘”。定义了仪表盘的 值范围(例如 0 ~ 100)、显示的角度范围(如 270°)、以及 刻度线的数量和样式。一个 lv_meter 对象可以拥有多个刻度盘(通常用一个就够了)。

  2. 刻度线(ticks)
    是刻度盘上的线条,包括 主刻度线(粗、带标签)和 次刻度线(细、不带标签)。它们用于可视化数据分布,帮助用户读数。可以自定义刻度数量、线宽、颜色、标签间隔等。

  3. 指示器(indicator)用于显示当前值。

指示器有三种主要类型:

针状指示器(needle):像时钟的指针一样旋转。

弧形指示器(arc):显示某一段范围,常用于区域显示。

图像指针(image):用图像作为指针,更加美观。

每个指示器都与某个刻度盘绑定,并根据数据自动旋转或变化。

1.3 工作原理

  1. 创建仪表:先创建 lv_meter 对象。

  2. 添加刻度盘:定义刻度盘的数值范围、角度范围。

  3. 设置刻度线:设置次刻度和主刻度的外观。

  4. 添加指示器:添加针或弧等指示器来展示当前值。

  5. 设置指针值:调用函数实时更新指针的位置或弧度。

1.4 实际用途举例

  1. 电动车仪表盘:显示速度、电量、温度等。

  2. 工业控制界面:如气压表、水温表、转速表。

  3. 医疗设备 UI:心率仪、氧气浓度计等。

  4. 智能家居:如空调温度、湿度显示表盘。

2 常见函数介绍

2.1 创建仪表对象

lv_obj_t * meter = lv_meter_create(lv_scr_act());

在这里插入图片描述

2.2 添加刻度盘

lv_meter_scale_t * scale = lv_meter_add_scale(meter);

在这里插入图片描述

2.3 设置刻度盘范围(数值范围 & 角度范围)

lv_meter_set_scale_range(meter, scale, min_value, max_value, angle_range, rotation_offset);

angle_range:刻度盘覆盖的角度
rotation_offset:起始角度
angle = rotation_offset + (value - min) × (angle_range / (max - min))

在这里插入图片描述

2.4 设置刻度线

2.4.1 控制小刻度的数量和外观

lv_meter_set_scale_ticks(meter,scale,tick_num,     // 🟡 刻度线总数(含起点和终点)tick_width,   // 🟢 每条刻度线的宽度(像素)tick_length,  // 🔵 每条刻度线的长度(像素)color         // 🔴 刻度线的颜色
);

tick_num = (max_value - min_value) / 间隔 + 1

在这里插入图片描述

2.4.2 控制主刻度(带数字)的显示

主刻度(Major Ticks),即那些更长、更粗、带有标签文字的刻度线。这类刻度通常用于强调关键数值,如 0、20、40 等。

lv_meter_set_scale_major_ticks(meter,scale,major_tick_every, // 🟡 每隔几个 tick 出现一个主刻度(=多少小刻度间隔)width,             // 🟢 主刻度的线宽length,            // 🔵 主刻度的线长color,             // 🔴 主刻度颜色label_gap          // 🟣 标签(数字)与线之间的像素间距
);

主刻度数 ≈ tick_num / major_tick_every
主刻度值 = min + i * (max - min) / (tick_num - 1) * major_tick_every
在这里插入图片描述

2.5 添加指针

2.5.1 创建一个线状指针

lv_meter_indicator_t * lv_meter_add_needle_line(lv_obj_t *meter,             /* 表盘对象 */lv_meter_scale_t *scale,     /* 对应的刻度盘 */uint16_t width,              /* 指针的线宽,单位:像素 */lv_color_t color,            /* 指针的颜色 */int16_t r_mod                /* 指针的长度相对于半径的比例,0-100 */
);

在这里插入图片描述

2.5.2 创建一个弧形指示器(可用于范围值显示)

lv_meter_indicator_t * arc = lv_meter_add_arc(meter, scale, thickness, color, r_mod);

在这里插入图片描述

2.6 设置指针值

lv_meter_set_indicator_value(meter, indicator, value);

在这里插入图片描述

3 简单示例

3.1 温度

3.1.1 数据标准

  1. 温度范围:0°C ~ 100°C

  2. 仪表角度范围:270°(从左下到右下)

  3. 主刻度每 10°C 一个,次刻度每 5°C 一个

  4. 一个红色针状指针

  5. 可以通过定时器或动画更新温度值

3.1.2 具体代码

static lv_obj_t* meter;
static lv_meter_indicator_t* needle;/* 模拟温度值更新的回调函数 */
static void update_temperature_cb(lv_timer_t* timer) {static int temp = 0;lv_meter_set_indicator_value(meter, needle, temp);temp = (temp + 1) % 101; // 循环 0 ~ 100
}void create_temperature_meter(void) {/* 创建仪表对象 */meter = lv_meter_create(lv_scr_act());/* 设置大小和位置 */lv_obj_set_size(meter, 200, 200);lv_obj_center(meter);/* 添加刻度盘 */lv_meter_scale_t* scale = lv_meter_add_scale(meter);///* 设置数值范围 0~100°C,角度覆盖 270°,从135°起始 */lv_meter_set_scale_range(meter, scale, 0, 100, 270, 135);/* 设置刻度线(小刻度) */lv_meter_set_scale_ticks(meter, scale, 21, 2, 10, lv_palette_main(LV_PALETTE_GREY));///* 设置主刻度线(带数字标签) */lv_meter_set_scale_major_ticks(meter, scale, 5, 4, 15, lv_color_black(), 10);/* 添加一个红色指针(长度为90%) */needle = lv_meter_add_needle_line(meter, scale, 6, lv_palette_main(LV_PALETTE_RED), 1);lv_meter_indicator_t* arc_green = lv_meter_add_arc(meter, scale,6,lv_palette_main(LV_PALETTE_GREEN), 4); // 线宽6px,圆弧在刻度后面lv_meter_set_indicator_start_value(meter, arc_green, 0);lv_meter_set_indicator_end_value(meter, arc_green, 60);lv_meter_indicator_t* arc_orange = lv_meter_add_arc(meter, scale,6,lv_palette_main(LV_PALETTE_ORANGE), 4);lv_meter_set_indicator_start_value(meter, arc_orange, 60);lv_meter_set_indicator_end_value(meter, arc_orange, 80);lv_meter_indicator_t* arc_red = lv_meter_add_arc(meter, scale,6, lv_palette_main(LV_PALETTE_RED), 4);lv_meter_set_indicator_start_value(meter, arc_red, 80);lv_meter_set_indicator_end_value(meter, arc_red, 100);///* 初始温度设为25°C */lv_meter_set_indicator_value(meter, needle, 25);///* 创建定时器,每500ms更新一次温度 */lv_timer_create(update_temperature_cb, 500, NULL);
}

表盘

http://www.dtcms.com/wzjs/117875.html

相关文章:

  • 做商业地产常用的网站怎么关键词优化网站
  • 江西汽车网站建设优化推广网站seo
  • 网站建设对企业影响有多大高清的网站制作
  • 重庆seo网络推广东莞关键词优化平台
  • 横沥做网站的电话新闻稿代写
  • 灰色链网站建设产品推广的渠道
  • 微信商城网站开发seosem是什么职位
  • 免费英文建设网站站长之家最新网站
  • 企业做国际站哪个网站好网络营销主要做些什么
  • csdn. wordpress慧达seo免登录发布
  • 做金融网站看那些素材互联网项目推广是什么
  • 保健品网站建设策划书如何刷app推广次数
  • 网站建设费用如何做账网易搜索引擎入口
  • 阿里云网站建设和部署框架万能引流软件
  • 直接找高校研究生做网站行吗热门国际新闻
  • 一个女装店网站建设的策划模板西安seo推广优化
  • 怎样上传自己做的网站站长申论
  • 绍兴易网网站开发广州疫情今天最新消息
  • 个人网站开发赚钱方向网络营销工具包括
  • 深圳网站建设公司电话如何让网站快速收录
  • 阿里云的网站程序如何做合肥推广外包公司
  • 辽宁平台网站建设平台开网站怎么开
  • 17.zwd一起做网站引流推广怎么做
  • 百度seo排名优化公司推荐seo基础课程
  • 京广桥做网站的公司免费网络营销方式
  • seo站长常用工具南昌seo顾问
  • 企业网站建设的类型quark搜索引擎入口
  • 如何做网络投票网站万能优化大师下载
  • 网站管理建站河南网站优化
  • 做网站卖房写标题seo推广是什么