[C] 纯文本查看 复制代码 void create_interface(lv_obj_t *parent)
{
cont = app_interface_management_create_page_parent_cont(parent);
// 创建图表
lv_obj_t *chart = lv_chart_create(cont);
app_im_init_obj(chart, LV_OPA_0, 0x00000000);
lv_obj_set_size(chart, 560, 170);
lv_obj_set_pos(chart, 0, 0);
// 设置图表类型为线型图表
lv_chart_set_type(chart, LV_CHART_TYPE_LINE);
// 设置点数为容器宽度,确保每个像素都有值
lv_chart_set_point_count(chart, 560);
// 设置Y轴范围
lv_chart_set_range(chart, LV_CHART_AXIS_PRIMARY_Y, -85, 85);
// 设置网格
lv_chart_set_div_line_count(chart, 0, 0);
// 添加数据系列
lv_chart_series_t *ser = lv_chart_add_series(chart, lv_color_make(0, 150, 255), LV_CHART_AXIS_PRIMARY_Y);
// 生成正弦曲线数据
for(int i = 0; i < 560; i++) {
// 计算正弦值,将i映射到0-2π的范围内
float angle = (float)i * 2 * 3.14159f / 140.0f; // 4个完整周期
int32_t value = (int32_t)(80 * sin(angle)); // 振幅为80
ser->y_points[i] = value;
}
// 刷新图表
lv_chart_refresh(chart);
} |