fix(chart): fix off-by-one error in chart widget (#4461)

Signed-off-by: W-Mai <1341398182@qq.com>
This commit is contained in:
Benign X
2023-08-18 16:58:35 +08:00
committed by GitHub
parent d47a44f225
commit ae3567cb46
2 changed files with 3 additions and 11 deletions

View File

@@ -575,7 +575,6 @@ static void analytics_create(lv_obj_t * parent)
lv_chart_set_next_value(chart1, ser1, lv_rand(10, 80));
lv_chart_set_next_value(chart1, ser1, lv_rand(10, 80));
lv_chart_set_next_value(chart1, ser1, lv_rand(10, 80));
lv_chart_set_next_value(chart1, ser1, lv_rand(10, 80));
lv_obj_t * chart2_cont = lv_obj_create(parent);
lv_obj_add_flag(chart2_cont, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
@@ -628,7 +627,6 @@ static void analytics_create(lv_obj_t * parent)
lv_chart_set_next_value(chart2, ser2, lv_rand(10, 80));
lv_chart_set_next_value(chart2, ser2, lv_rand(10, 80));
lv_chart_set_next_value(chart2, ser2, lv_rand(10, 80));
lv_chart_set_next_value(chart2, ser2, lv_rand(10, 80));
ser3 = lv_chart_add_series(chart2, lv_theme_get_color_primary(chart1), LV_CHART_AXIS_PRIMARY_Y);
lv_chart_set_next_value(chart2, ser3, lv_rand(10, 80));
@@ -643,7 +641,6 @@ static void analytics_create(lv_obj_t * parent)
lv_chart_set_next_value(chart2, ser3, lv_rand(10, 80));
lv_chart_set_next_value(chart2, ser3, lv_rand(10, 80));
lv_chart_set_next_value(chart2, ser3, lv_rand(10, 80));
lv_chart_set_next_value(chart2, ser3, lv_rand(10, 80));
lv_meter_indicator_t * indic;
meter1 = create_meter_box(parent, "Monthly Target", "Revenue: 63%", "Sales: 44%", "Costs: 58%");
@@ -817,11 +814,6 @@ void shop_create(lv_obj_t * parent)
lv_chart_set_next_value(chart3, ser4, lv_rand(60, 90));
lv_chart_set_next_value(chart3, ser4, lv_rand(60, 90));
lv_chart_set_next_value(chart3, ser4, lv_rand(60, 90));
lv_chart_set_next_value(chart3, ser4, lv_rand(60, 90));
lv_chart_set_next_value(chart3, ser4, lv_rand(60, 90));
lv_chart_set_next_value(chart3, ser4, lv_rand(60, 90));
lv_chart_set_next_value(chart3, ser4, lv_rand(60, 90));
lv_chart_set_next_value(chart3, ser4, lv_rand(60, 90));
if(disp_size == DISP_LARGE) {
static lv_coord_t grid1_col_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};

View File

@@ -892,7 +892,7 @@ static void draw_series_line(lv_obj_t * obj, lv_layer_t * layer)
if(LV_MIN(point_w, point_h) > line_dsc.width / 2) line_dsc.raw_end = 1;
if(line_dsc.width == 1) line_dsc.raw_end = 1;
/*If there are at least as much points as pixels then draw only vertical lines*/
/*If there are at least as many points as pixels then draw only vertical lines*/
bool crowded_mode = chart->point_cnt >= w ? true : false;
/*Go through all data lines*/
@@ -969,7 +969,7 @@ static void draw_series_line(lv_obj_t * obj, lv_layer_t * layer)
}
if(point_w && point_h && ser->y_points[p_prev] != LV_CHART_POINT_NONE) {
point_dsc_default.base.id2 = i;
point_dsc_default.base.id2 = i - 1;
lv_draw_rect(layer, &point_dsc_default, &point_area);
}
}
@@ -987,7 +987,7 @@ static void draw_series_line(lv_obj_t * obj, lv_layer_t * layer)
point_area.x2 = line_dsc.p2.x + point_w;
point_area.y1 = line_dsc.p2.y - point_h;
point_area.y2 = line_dsc.p2.y + point_h;
point_dsc_default.base.id2 = i;
point_dsc_default.base.id2 = i - 1;
lv_draw_rect(layer, &point_dsc_default, &point_area);
}