| **银杏科技有限公司旗下技术文档发布平台** |||| |技术支持电话|**0379-69926675-801**||| |技术支持邮件|Gingko@vip.163.com||| ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | V1.0 | 2020-12-14 | yang | 初次建立 | ===== 实验二十:lv_line线条 ===== ==== 一、线条 ==== 顾名思义,Line 对象能够在一组点之间绘制直线。线条控件只有一个主要部分,称为 **LV_LABEL_PART_MAIN** ,它使用所有线型样式属性。线条只支持通用事件。 ==== 二、设置节点列表 ==== 通常情况下,屏幕左上角为原点 **(0, 0)** ,横坐标x是水平方向向右变大,纵坐标y竖直向下变大,示意图如下: {{ :icore4t:icore4t_rtt_lvgl_20_1.png?direct |}} 了解屏幕与坐标的对应关系后,就可以通过下面的方式设置坐标点数组,坐标点对应的就是像素点。 static lv_point_t line_points[] = { {5, 5}, {70, 70}, {120, 10}, {180, 60}, {240, 10} }; 这些点必须存储在 **lv_point_t** 数组中,并通过函数 **lv_line_set_points(lines, point_array, point_cnt)** 传递给线条对象,参数 **point_cnt** 为传入节点数,可以小于坐标点数组的个数。 ==== 三、尺寸自适应 ==== 线条对象可以根据其点自动设置大小。用户可以通过 **lv_line_set_auto_size(line, true)** 启用。如果启用,则在设置点后,将根据点之间的最大 x 和 y 坐标更改对象的宽度和高度。该自动调整大小功能默认情况为启用。 ==== 四、颠倒y轴 ==== 默认情况下,y = 0 点位于对象的顶部。在某些情况下,它可能与人类直观感受相反,因此可以使用 **lv_line_set_y_invert(line, true)** 来使y坐标轴反转。在这种情况下, y = 0 将是对象的底部。该反转功能默认情况下禁用。 {{ :icore4t:icore4t_rtt_lvgl_20_2.png?direct |}} void lv_gui_run(void){ lvgl2rtt_init("lcd"); /* 初始化lvgl2rtt */ /* 创建节点坐标数组 */ static lv_point_t line_points[] = { {5, 5}, {70, 70}, {120, 10}, {180, 60}, {240,10} }; static lv_style_t style_line; /* 创建一个样式 */ lv_style_init(&style_line); /* 初始化样式 */ lv_style_set_line_width(&style_line, LV_STATE_DEFAULT, 8); /* 设置线宽 */ lv_style_set_line_color(&style_line, LV_STATE_DEFAULT, LV_COLOR_BLUE); /* 设置颜色 */ lv_style_set_line_rounded(&style_line, LV_STATE_DEFAULT, true);/* 设置为圆角 */ lv_obj_t * line = lv_line_create(lv_scr_act(), NULL); /* 创建线条对象 */ lv_line_set_points(line, line_points, 5); /* 设置传入点数 */ lv_obj_add_style(line, LV_LINE_PART_MAIN, &style_line); /* 应用样式 */ lv_obj_align(line, NULL, LV_ALIGN_CENTER, 0, 0); /* 设置位置 */ }