LVGL线条组件隐藏技巧:用按钮模拟箭头/曲线竟如此简单?

LVGL线条与画布实战:从坐标点到动态图形绘制 本文深入探讨了LVGL中线条与画布部件的实战应用。线条部件通过坐标点数组实现动态图形绘制,是构建图表的基础;画布部件则利用LVGL强大的绘图引擎,支持绘制基本图形、文本及旋转、模糊等高级特效。文章结合动态仪表盘实例,展示了二者组合实现高性能自定义界面的方法,并提供了关键的优化与避坑指南。 阅读详情

LVGL线条组件隐藏技巧:用按钮模拟箭头/曲线竟如此简单?

在嵌入式GUI开发中,LVGL作为轻量级图形库广受欢迎,但其原生线条组件功能存在明显局限——无法直接绘制箭头、曲线等复杂图形。本文将揭示如何通过创意组合基础组件实现高级绘图效果,特别适合需要自定义图形但受限于硬件资源的开发者。

1. 原生线条组件的核心局限与替代方案

LVGL的lv_line组件通过连接坐标点绘制直线,其核心API包括:

lv_obj_t* line = lv_line_create(parent);
lv_point_t points[] = {{0, 0}, {50, 30}, {100, 10}};
lv_line_set_points(line, points, 3);

但存在三大硬伤:

  • 无箭头支持:无法自动为线段添加起始/结束标记
  • 仅限直线:曲线需手动计算离散点坐标
  • 无填充功能:无法创建实心多边形

实测数据对比:

功能需求原生线条组件画布组件本文方案
箭头绘制✔✔
曲线平滑度低(分段近似)高中
内存占用(KB)2-515-303-8
刷新效率(FPS)60+20-3050+

提示:当需要绘制简单箭头时,按钮方案的性能开销仅为画布的1/3

2. 按钮模拟箭头的实战技巧

通过组合矩形按钮与三角形符号,可构建五种箭头变体:

2.1 基础箭头实现

// 创建线段主体(矩形按钮)
lv_obj_t* line = lv_btn_create(lv_scr_act());
lv_obj_set_size(line, 100, 5);  // 线宽由高度决定
lv_obj_set_style_bg_color(line, lv_color_hex(0x000000), 0);

// 添加箭头头(三角形符号)
lv_obj_t* arrow = lv_label_create(line);
lv_label_set_text(arrow, LV_SYMBOL_ARROW_RIGHT);
lv_obj_align(arrow, LV_ALIGN_RIGHT_MID, 10, 0);

关键参数优化:

  • 线宽控制:lv_obj_set_height()值决定线条视觉粗细
  • 箭头定位:通过LV_ALIGN_*宏实现精准对齐
  • 颜色同步:使用lv_obj_set_style_local_*保持样式统一

2.2 动态方向调整

通过旋转变换实现任意角度箭头:

lv_obj_t* arrow = /* 创建箭头对象 */;
lv_obj_set_style_transform_angle(arrow, 4500);  // 45度(单位0.1度)
lv_obj_set_style_transform_pivot_x(arrow, 0);   // 设置旋转中心
lv_obj_set_style_transform_pivot_y(arrow, 0);

角度计算公式:

旋转角度 = atan2(y2-y1, x2-x1) * (180/π) * 10

3. 曲线绘制的非传统方案

3.1 圆角按钮模拟弧线

lv_obj_t* arc = lv_btn_create(lv_scr_act());
lv_obj_set_size(arc, 100, 100);
lv_obj_set_style_radius(arc, LV_RADIUS_CIRCLE, 0);
lv_obj_set_style_bg_opa(arc, LV_OPA_TRANSP, 0);
lv_obj_set_style_border_width(arc, 3, 0);  // 曲线粗细
lv_obj_set_style_border_side(arc, LV_BORDER_SIDE_BOTTOM, 0);

参数对应关系:

曲线特征按钮属性配置
曲率半径style_radius值
线宽border_width值
显示区间border_side组合
虚线效果border_dash_width设置

3.2 多组件组合曲线

通过重叠多个圆角矩形实现S型曲线:

// 第一段曲线
lv_obj_t* part1 = lv_btn_create(lv_scr_act());
lv_obj_set_size(part1, 50, 30);
lv_obj_set_style_radius(part1, 15, LV_PART_MAIN);

// 第二段曲线 
lv_obj_t* part2 = lv_btn_create(lv_scr_act());
lv_obj_set_size(part2, 50, 30);
lv_obj_set_style_radius(part2, 15, LV_PART_MAIN);
lv_obj_align_to(part2, part1, LV_ALIGN_OUT_RIGHT_BOTTOM, 0, 20);

4. GUI Guider中的高效实现

在GUI Guider工具中快速构建箭头:

  1. 拖放基础按钮:从组件面板选择Button
  2. 调整尺寸:在属性面板设置Width=100, Height=4
  3. 移除交互:取消勾选Clickable属性
  4. 添加符号:
    • 在按钮内创建Label
    • 设置文本为LV_SYMBOL_ARROW_RIGHT
    • 调整颜色与位置

性能优化技巧:

  • 对静态图形启用LV_OBJ_FLAG_HIDDEN替代频繁删除/创建
  • 使用lv_obj_add_flag(obj, LV_OBJ_FLAG_IGNORE_LAYOUT)避免重复布局计算
  • 对组合图形使用lv_group_create()统一管理

5. 进阶技巧与异常处理

5.1 动态更新策略

void update_arrow(lv_obj_t* arrow, lv_point_t from, lv_point_t to) {
    // 计算长度和角度
    int16_t length = sqrt(pow(to.x-from.x, 2) + pow(to.y-from.y, 2));
    int16_t angle = atan2(to.y-from.y, to.x-from.x) * 57296 / 1000;
    
    // 更新线条
    lv_obj_set_size(arrow, length, 3);
    lv_obj_set_pos(arrow, from.x, from.y);
    
    // 更新箭头方向
    lv_obj_t* symbol = lv_obj_get_child(arrow, 0);
    lv_obj_set_style_transform_angle(symbol, angle, 0);
}

5.2 常见问题排查

  • 显示残缺:检查父容器裁剪设置lv_obj_set_style_clip_corner()
  • 性能卡顿:对频繁更新的图形禁用动画lv_obj_set_style_anim_time(0)
  • 触摸穿透:设置lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE)

在STM32F4平台实测中,这种方案相比画布可降低40%的CPU占用率,特别适合需要同时渲染多个动态箭头的仪表盘应用。

手把手教你玩转LVGL特殊符号:让你的UI界面瞬间提升档次 本文详细介绍了如何在LVGL嵌入式UI开发中巧妙运用特殊符号系统,通过矢量图标提升界面专业感和用户体验。从基础符号使用到高级组合技巧,再到实际项目应用案例,帮助开发者掌握LVGL特殊符号的全面应用方法,实现轻量级但视觉效果出色的UI设计。 阅读详情

相关推荐

LVGL Chart 控件之动态血糖曲线实现

本文详细介绍了如何利用LVGL的Chart控件实现动态血糖监测曲线,满足医疗健康设备对实时数据更新、正常值范围标记和触摸交互的需求。通过基础配置、数据系列设置和实时更新机制,开发者可以快速构建高性能的血糖曲线UI,适用于嵌入式医疗设备。

weixin_29269441的博客 212

LVGL 图表(lv_chart)自定义

我们用lv_chart的折线图LV_CHART_TYPE_LINE类型,只能设置y值,x值自动增加,对于想要实现不规则折线图的我来说完全不够用散点图可自定义(x,y),设置任意点,但没线结合这两个,可以如下配置散点图,以实现自定义折线图简单来说就是隐去散点图的点,再让线显示出来就是类似如下效果实现代码。

weixin_44322019的博客 1138

使用chart做的温度曲线图

CS 的chart控件制作的温度曲线图,例子修改一下可以直接用。不知道为什么所需积分变多了,我记得设置的是5分下载。

三相维也纳Vienna整流器电流过零畸变消除仿真模型【三种消除方法】(Simulink仿真实现)

内容概要:本文档围绕“三相维也纳Vienna整流器电流过零畸变消除仿真模型”展开,详细提供了基于Simulink平台实现的三种电流过零畸变抑制方法的仿真模型,旨在解决Vienna整流器在实际应用中由于开关死区效应、器件非理想特性等因素导致的输入电流在过零点附近出现波形畸变的问题,从而提升功率因数和系统效率。文档配套包含9kW三相三开关Vienna PFC整流器的Mathcad计算书,支持用户根据不同功率等级和电压规格进行系统级参数设计与优化。此外,资源还整合了双闭环控制策略、中点电压平衡控制、空间矢量脉宽调制(SVPWM)等关键技术的仿真模型,形成了一套完整、可复用的Vienna整流器控制系统研究与开发体系,适用于高性能电力电子变换器的研发与教学实践。; 适合人群:具备电力电子、自动控制或电气工程等相关专业背景,熟悉Matlab/Simulink仿真环境,正在从事高功率因数整流器、PFC电路、新能源发电、电动汽车充电系统或工业电源研发的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解Vienna整流器电流过零畸变的产生机理及其对系统性能的影响;②对比分析并验证三种畸变抑制方法在不同工况下的控制效果与适用范围;③开展高效率、高功率因数整流系统的建模、控制器设计与仿真验证工作;④支撑高水平学术论文撰写、科研项目申报或实际工程项目的技术预研与方案论证。; 阅读建议:建议首先利用Mathcad计算书完成主电路参数设计,随后在Simulink中搭建或修改相应的控制模型,通过设置不同负载与输入条件,对比分析各方案下输入电流THD、功率因数、中点电位波动等关键指标,深入掌握控制算法的动态响应特性和鲁棒性,同时可结合双闭环架构与中点平衡策略进一步优化系统整体性能。

QV_1791504590577.mp4

QV_1791504590577.mp4

volatility 内存取证工具

volatility 内存取证工具,用于内存分析

机器人具有扰动抑制功能的有限时间基于方位角的领航者-跟随者编队控制(Matlab代码实现)

内容概要:本文档名为《Plecs全桥LLC谐振变换器仿真模型.txt》,但其实际内容并非围绕该主题展开,而是作为一份优快云博客或科研资源共享平台的文章汇总清单,集中展示了多个工程技术领域的仿真研究与算法实现。涵盖的主要方向包括电力电子(如LLC谐振变换器、VSC-HVDC、PMSM控制)、电力系统优化(潮流计算、微电网调度、无功优化)、智能优化算法(遗传算法、粒子群优化、NSGA-II、多元宇宙算法等)、控制理论(模型预测控制、卡尔曼滤波、滑模控制)、信号与图像处理(故障诊断、雷达SAR成像、双目视觉测距)、无线通信与传感器网络、无人机路径规划与多智能体编队控制、车间调度、深度学习应用(LSTM、CNN、DQN)等。所有条目均基于Matlab/Simulink或Python实现,强调提供完整的仿真模型、源代码、参考文献及详细说明文档,便于用户直接下载与复现。该文档本质为“荔枝科研社”团队发布的科研技术服务推广目录,旨在展示其在多学科仿真建模方面的技术积累与资源服务能力; 适合人群:具备一定工程背景和编程基础的研究生、高校教师、科研人员以及从事自动化、电气工程、控制科学与工程、计算机科学、通信工程、智能制造等相关领域的技术人员; 使用场景及目标:①为科研工作者提供成熟的算法实现方案与仿真模板,显著降低课题开发与论文复现的时间成本;②辅助完成课程设计、毕业设计、科技竞赛(如数学建模大赛)、期刊论文复现等任务;③推动先进控制策略、智能优化算法和数据驱动方法在电力系统、智能制造、无人机集群、新能源管理等前沿领域的应用研究与成果转化; 其他说明:所有资源均通过百度网盘或微信公众号“荔枝科研社”免费提供下载,配套资料齐全,包含仿真模型、可运行代码、论文参考文献、技术文档等,支持快速部署、结果验证与二次开发,适用于教学、科研与工程实践场景。

YOLO26算法皮革表面缺陷检测+训练好的模型+124张数据集+pyqt可视化界面.zip

附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[颜色(color), 切(cut), 折叠(fold), 胶水(glue), 好的(good), 戳(poke)] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 68 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.7582** mAP50-95 | 0.4306 Precision | 0.6226 Recall | 0.6520 train/box_loss | 0.8731 train/cls_loss | 2.3543 val/box_loss | 1.3709 val/cls_loss | 3.9767 【训练过程分析】 从一开始的配置就定下了基调,训练配置包括了 yolo26n 模型、100 个 epoch,学习率初始设为 0.01,输入尺寸定为 640x640,批次大小为 24。这组配置在开始阶段表现得不错,模型刚开始训练时的 loss 降低得很快,这表明模型能够迅速从数据中吸收信息。但到了中后期,loss 曲线变得愈发平缓,从第 50 个 epoch 开始,即使我增加了学习率衰减的频率,仍然感到曲线在挣扎,像是陷入了平台期。这期间模型的收敛节奏明显减缓,似乎有些“停滞不前”的迹象。到了最后,模型确实收敛了,但在第 68 个 epoch 时 mAP50 获得了 0.7582 的值,这是一个不错的成绩,但与理想值相比仍有提升空间。... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。

基于单串电池保护IC:DW01-A/J开发的Battery Charger ,支持瞬态100A电池供电能力,适用于儿童 大脚车类

文件内含:原理图、PCB gerber、BOM,以及SMT位置文件,已验证完毕,可直接生产。

YOLO26算法花生异常状态识别+训练好的模型+113张数据集+pyqt可视化界面.zip

附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[异常的(abnormal)] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 63 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9723** mAP50-95 | 0.8879 Precision | 0.9362 Recall | 0.9444 train/box_loss | 0.4558 train/cls_loss | 0.6201 val/box_loss | 0.4368 val/cls_loss | 0.6930 【训练过程分析】 自从开启了训练任务,每天盯着那根不断波动的 loss 曲线,感觉就像在过山车里兜兜转转。第一轮的训练,模型似乎对数据还不够熟悉,loss 还是较高,尤其是在前 10 轮,loss 下降的速度虽然很快,但并不均匀,有时甚至会有些许反复。到了 20 轮时,loss 曲线明显放缓,似乎进入了一个相对平稳的阶段,但这并没有带来 mAP50 的快速提升。从第 20 轮到第 40 轮,训练过程显得有些枯燥,loss 持续在某个数值附近徘徊,有时候还会在 0.45 到 0.48 之间跳动。到了 40 轮后,我明显感觉到训练进入了一个瓶颈期,loss 曲线开始呈现平台状态,即使再训练几轮,loss 下降的幅度也不大。直到 55 轮左右,loss 才开始缓慢下降,但整个训练过程都让人感觉像是在与时间赛跑,尤其是第 6... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。

视频编码压缩11111

视频编码压缩11111

从“机械臂阵列”到“会思考的白车身”:2026汽车焊装数字化生产线行业调研.pdf

从“机械臂阵列”到“会思考的白车身”:2026汽车焊装数字化生产线行业调研.pdf

阿里云 ACP 认证考试题库:866 题全量汇编(单选 400 / 多选 261 / 判断 205,附答案解析

这是一套阿里云 ACP 认证考试的完整题库,三个 Excel 文件共收录 **866 道题**,题型齐全:单选题 400 道、多选题 261 道、判断题 205 道。三种题型分别放在独立表格里,每张表结构统一清晰,依次是题号、题干、四个选项(多选题多一个 E 选项)、参考答案、答案解析,**每道题都有唯一编号**,可以按题号快速检索、定位和复盘,不必在长表格里翻找。打开即可使用:无需联网,无需登录,也无需额外安装软件。 题库容量充足,866 道题足以支撑多轮完整备考。三类题型交替练习,既能强化对基础概念的记忆,又能通过多选题训练对 “多个正确选项” 的判断能力,让复习节奏更完整。 **覆盖范围广,且贴近实际业务场景**。题目覆盖阿里云大数据及云产品的完整谱系:MaxCompute(原 ODPS)的计算与 SQL 是大头,共 352 道,从项目空间、分区表、Tunnel 数据通道、UDF 到 LabelSecurity 权限模型,一线操作细节基本都涉及;其余还有关系型数据库 RDS(126 道)、DataWorks 与调度运维(104 道)、分析型数据库 ADS(95 道)、表格存储 OTS(36 道)、数据安全与防护(38 道)。也就是说,一套题库就能覆盖数据存储、计算、调度、分析、安全五条线,适合作为**综合能力自测**使用。 **答案分布均衡,自测结果可信**。单选题正确选项为 A98 / B104 / C108 / D90,四个选项几乎均分,不会出现 “蒙同一个字母就能得分” 的情况;判断题正确与错误分别为 99 / 106,比例接近;多选题以三选组合为主,符合真实考试的难度梯度。用这套题做模拟自测,得到的正确率能比较真实地反映掌握程度。 **与官方课件互补性强**。题库里的题干保留了 “大数据计算服务(MaxCompute,原 ODPS)” 这类带沿革说明的

PSIM-串联谐振半桥LLC开关电源+PFM变频闭环控制【仿真+计算书+参考文献】

内容概要:本文档聚焦于Plecs仿真软件在全桥LLC谐振变换器建模与仿真中的深度应用,系统阐述了LLC谐振变换器的工作原理、关键参数设计方法及闭环控制策略。文档详细介绍了基于Plecs平台构建全桥LLC谐振变换器仿真模型的全过程,涵盖主电路拓扑结构、谐振腔参数(Lr, Lm, Cr)的计算与匹配、控制环路(包括PFM变频控制)设计以及软启动过程的仿真分析。通过丰富的仿真结果,验证了系统在不同负载与输入条件下的动态响应性能、效率表现及零电压开关(ZVS)实现情况。此外,文档还深入探讨了开环与闭环控制的性能差异、磁性元件的设计要点以及变频控制策略对系统稳定性和效率的影响,为电力电子变换器的研发、优化与教学提供了完整的理论依据与实践指导。; 适合人群:具备扎实电力电子技术基础的高等院校研究生、从事开关电源、高频DC-DC变换器设计的工程技术人员,以及致力于LLC谐振变换器性能优化与控制算法研究的科研人员。; 使用场景及目标:①作为高校电力电子与电力传动专业课程的仿真教学案例,用于LLC谐振变换器原理讲解与实验设计;②指导工程师在实际工程项目中完成LLC变换器的参数设计、控制环路调试与性能验证;③为科研工作者开展高频高效变换器的效率优化、新型控制策略(如数字控制、自适应控制)研究提供仿真验证平台。; 阅读建议:建议读者结合Plecs软件动手实践,严格按照文档步骤搭建仿真模型,特别关注谐振参数的精确计算与匹配过程,以及闭环控制环路的稳定性调试。应反复对比不同工况下的仿真波形与数据,深入理解LLC变换器的增益特性、软开关实现条件及控制环路的动态响应机制,以达到融会贯通的学习效果。

政府科技管理者需要哪些工具来精准识别区域高价值科技成果?.docx

政府科技管理者需要哪些工具来精准识别区域高价值科技成果?

两相交错并联Boost电路仿真模型(Simulink仿真实现)

内容概要:本文详细介绍了基于Simulink平台构建的两相交错并联Boost电路的仿真模型,系统阐述了该拓扑结构在提升系统效率、降低输出电流纹波以及改善动态响应特性方面的技术优势。文中涵盖了主电路架构设计、双闭环控制策略(电压环与电流环)的实现原理、关键参数(如电感、电容、开关频率)的选取依据,并通过仿真结果验证了控制方案的有效性与稳定性。该模型突出展示了多相交错技术在功率变换器中的应用价值,有助于深入理解现代电力电子系统的设计思路与优化方法,适用于新能源发电、储能系统及高效率DC-DC变换器的研发场景。; 适合人群:具备电力电子技术基础理论知识和Simulink仿真操作经验的电气工程、自动化、能源动力等相关专业的本科高年级学生、研究生,以及从事电源变换器设计与开发的工程技术人员。; 使用场景及目标:① 掌握两相交错并联Boost电路的工作机理及其在减小输入/输出电流纹波中的作用;② 学习并实践双闭环反馈控制策略的设计与调试方法;③ 利用仿真模型开展控制器参数优化,提升系统的稳态精度与抗扰动能力,为后续硬件原型开发提供理论支撑与设计参考。; 阅读建议:建议读者结合仿真模型逐步操作,重点关注交错控制时序、占空比分配、电感电流交错现象及环路补偿设计,对照理论分析进行波形观测与参数调整,深化对多相并联拓扑动态特性的理解,并将其迁移应用于实际工程问题中。

状态估计【扩展卡尔曼滤波算法的神经网络训练】BP神经网络、扩展卡尔曼滤波EKF+BP、粒子滤波PF轨迹估计研究(Matlab代码实现)

内容概要:本文档聚焦于扩展卡尔曼滤波算法在神经网络训练中的应用,系统研究了BP神经网络、扩展卡尔曼滤波(EKF)、EKF与BP结合(EKF+BP)以及粒子滤波(PF)在非线性系统状态估计与轨迹预测中的建模与优化方法。文档深入阐述了各类滤波算法的基本原理,重点探讨了将EKF作为优化工具提升BP网络训练效率与收敛精度的技术路径,并对比分析了UKF、EKF、PF等在处理非高斯噪声和复杂动态环境下的性能差异。所有方法均配有基于Matlab的仿真实现代码,涵盖状态估计、权重更新机制、采样过程等关键环节,适用于高精度动态系统建模、传感器融合与轨迹跟踪等研究方向。 适合人群:具备一定Matlab编程能力,从事自动化、控制工程、机器人学、导航系统或信号处理等相关领域的研究生、科研人员及工程技术开发者,尤其适合致力于状态估计与智能算法融合研究的专业人士。 使用场景及目标:① 实现基于EKF优化的BP神经网络训练,提升模型学习速度与泛化能力;② 掌握EKF、UKF、PF等滤波器在非线性轨迹估计中的建模、仿真与性能评估技巧;③ 应用于无人机导航、移动机器人定位、自动驾驶等场景下的状态估计与多源信息融合系统开发。 阅读建议:建议结合Matlab代码逐模块调试与验证,重点关注EKF+BP中雅可比矩阵计算与协方差更新机制,以及PF的重采样策略,同时参考文档中提供的仿真案例与资源链接,深化对滤波算法与神经网络协同机制的理解。

RC滤波电路实战解析:无源与有源设计的性能对比与应用选择

本文深入解析了RC滤波电路的核心原理,重点对比了无源滤波电路与有源滤波电路的性能差异。文章通过实测波形与仿真数据,详细阐述了两者在带载能力、频率响应精度、噪声特性等方面的优劣,并提供了清晰的应用选择指南,帮助工程师根据信号属性、负载条件和性能要求做出最优设计决策。

weixin_29268637的博客 430
上一篇: 从布尔逻辑到复杂约束:SAT与SMT求解器的核心原理与实践指南
下一篇: 工业设备降噪秘籍:TMC5160的20A大电流驱动方案设计避坑指南
Alpha
博客等级 码龄27年 113粉丝 1665原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值