当前位置:首页 > 电子 > LVGL chart控件删除曲线上的点

LVGL chart控件删除曲线上的点

修改lv_chart.c 文件

找到函数 draw_series_line

static void draw_series_line(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx)
{
    ... 此处省略一堆代码
                    if(ser->y_points[p_prev] != LV_CHART_POINT_NONE && ser->y_points[p_act] != LV_CHART_POINT_NONE) {
                        lv_draw_line(draw_ctx, &line_dsc_default, &p1, &p2);
                    }
                   //注释掉下面的
                    // if(point_w && point_h && ser->y_points[p_prev] != LV_CHART_POINT_NONE) {
                    //     lv_draw_rect(draw_ctx, &point_dsc_default, &point_area);
                    // }
                    lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc);
                }
            }
            p_prev = p_act;
        }
        /*Draw the last point*/
        if(!crowded_mode && i == chart->point_cnt) {
            if(ser->y_points[p_act] != LV_CHART_POINT_NONE) {
                lv_area_t point_area;
                point_area.x1 = p2.x - point_w;
                point_area.x2 = p2.x + point_w;
                point_area.y1 = p2.y - point_h;
                point_area.y2 = p2.y + point_h;
                part_draw_dsc.id = i - 1;
                part_draw_dsc.p1 = NULL;
                part_draw_dsc.p2 = NULL;
                part_draw_dsc.draw_area = &point_area;
                part_draw_dsc.value = ser->y_points[p_act];
                lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc);
                //注释掉下面的
                //lv_draw_rect(draw_ctx, &point_dsc_default, &point_area);
                lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc);
            }
        }
    }
    draw_ctx->clip_area = clip_area_ori;
}
 

除特别注明外,本站所有文章均为视觉电子科技原创,转载请注明出处来自https://feelsight.cn/post/136.html

赞 (0

发表评论

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

分享:

支付宝

微信