From 5d2709db3221eac3c3c860b440dda203585e1d31 Mon Sep 17 00:00:00 2001 From: Niklas Fiekas Date: Thu, 30 Jan 2025 20:55:16 +0100 Subject: [PATCH] fix(chart): fix last point not drawn in scatter chart (#7665) Co-authored-by: Gregor Stemme --- src/widgets/chart/lv_chart.c | 9 ++++----- tests/ref_imgs/widgets/chart_scatter.png | Bin 0 -> 12287 bytes .../widgets/chart_scatter.png | Bin 0 -> 11838 bytes tests/src/test_cases/widgets/test_chart.c | 19 ++++++++++++++++++ 4 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 tests/ref_imgs/widgets/chart_scatter.png create mode 100644 tests/ref_imgs_vg_lite/widgets/chart_scatter.png diff --git a/src/widgets/chart/lv_chart.c b/src/widgets/chart/lv_chart.c index a700f7a8a..b68385a3a 100644 --- a/src/widgets/chart/lv_chart.c +++ b/src/widgets/chart/lv_chart.c @@ -1037,8 +1037,7 @@ static void draw_series_scatter(lv_obj_t * obj, lv_layer_t * layer) continue; } - /*Don't draw the first point. A second point is also required to draw the line*/ - if(i != 0) { + if(i != 0) { /*Don't draw line *to* the first point.*/ lv_area_t point_area; point_area.x1 = (int32_t)line_dsc.p1.x - point_w; point_area.x2 = (int32_t)line_dsc.p1.x + point_w; @@ -1046,10 +1045,10 @@ static void draw_series_scatter(lv_obj_t * obj, lv_layer_t * layer) point_area.y2 = (int32_t)line_dsc.p1.y + point_h; if(ser->y_points[p_prev] != LV_CHART_POINT_NONE && ser->y_points[p_act] != LV_CHART_POINT_NONE) { - line_dsc.base.id2 = i; + line_dsc.base.id2 = i - 1; lv_draw_line(layer, &line_dsc); if(point_w && point_h) { - point_dsc_default.base.id2 = i; + point_dsc_default.base.id2 = i - 1; lv_draw_rect(layer, &point_dsc_default, &point_area); } } @@ -1058,7 +1057,7 @@ static void draw_series_scatter(lv_obj_t * obj, lv_layer_t * layer) } /*Draw the last point*/ - if(i == chart->point_cnt) { + if(i == chart->point_cnt - 1) { if(ser->y_points[p_act] != LV_CHART_POINT_NONE) { lv_area_t point_area; diff --git a/tests/ref_imgs/widgets/chart_scatter.png b/tests/ref_imgs/widgets/chart_scatter.png new file mode 100644 index 0000000000000000000000000000000000000000..5afc32243d3b766b4da4aa92098ff950259fbe3c GIT binary patch literal 12287 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 Ef0T!Fwg3PC literal 0 HcmV?d00001 diff --git a/tests/src/test_cases/widgets/test_chart.c b/tests/src/test_cases/widgets/test_chart.c index 264d59ef3..d965c3965 100644 --- a/tests/src/test_cases/widgets/test_chart.c +++ b/tests/src/test_cases/widgets/test_chart.c @@ -193,4 +193,23 @@ void test_draw_task_hooking(void) TEST_ASSERT_EQUAL_SCREENSHOT("widgets/chart_bar_draw_hook.png"); } +void test_chart_scatter(void) +{ + lv_obj_center(chart); + lv_obj_set_size(chart, LV_PCT(100), LV_PCT(100)); + + lv_chart_set_type(chart, LV_CHART_TYPE_SCATTER); + + lv_chart_set_range(chart, LV_CHART_AXIS_PRIMARY_X, 50, 100); + lv_chart_set_range(chart, LV_CHART_AXIS_PRIMARY_Y, 10, 20); + + lv_chart_set_point_count(chart, 3); + lv_chart_series_t * ser = lv_chart_add_series(chart, red_color, LV_CHART_AXIS_PRIMARY_Y); + lv_chart_set_next_value2(chart, ser, 50, 10); + lv_chart_set_next_value2(chart, ser, 75, 12); + lv_chart_set_next_value2(chart, ser, 100, 20); + + TEST_ASSERT_EQUAL_SCREENSHOT("widgets/chart_scatter.png"); +} + #endif