lvgl chart
生活随笔
收集整理的這篇文章主要介紹了
lvgl chart
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
6.1 創建一個圖表對象
6.2 設置圖表的大小
6.3 設置圖表的對齊位置
6.4 設置圖表的區域(LV_CHART_TYPE_AREA是線顯示的區域,LV_CHART_TYPE_LINE表示單純的線)
6.5 設置圖表的透明度
6.6 設置數據系列的線寬或點半徑(線的粗細)
6.7 設置最大或最小的Y值
6.8 設置每條數據線所具有的數據點個數,如果不設置的話,則默認值是 10
6.9 設置水平和垂直分割線
6.10 設置 y 軸的數值范圍,[0,100]也是默認值
6.11 設置 y 軸的主刻度線長度和次刻度線長度
6.12 設置 y 軸的主刻度標題和每個主刻度標題間的刻度數
6.13 設置 x 軸的主刻度線長度和次刻度線長度
6.14 設置 x 軸的主刻度標題和每個主刻度標題間的刻度數
6.15 分配數據系列并將其添加到圖表中
6.16 將所有數據右移,并在數據行上設置最右邊的數據
6.17 創建一個線程,用于刷新圖表
定義一個線程參數結構體
typedef struct {lv_obj_t * chart;lv_chart_series_t * ser1;lv_chart_series_t * ser2; }TChartObject;static TChartObject chartObject;實現圖表刷新線程
__declspec (thread) int nCount = 0; //線程局部變量 DWORD WINAPI chart_thread_proc(LPVOID * wparm) {TChartObject *pTChartObject = (TChartObject*)wparm;int iOffset = 0;while (1){Sleep(500);for (int i = 0; i < 10; i++){if (i % 2 == 0)lv_chart_set_next(pTChartObject->chart, pTChartObject->ser1, 0 + iOffset);elselv_chart_set_next(pTChartObject->chart, pTChartObject->ser1, 20 + iOffset);}for (int i = 0; i < 10; i++){if (i % 2 == 0)lv_chart_set_next(pTChartObject->chart, pTChartObject->ser2, 0 + iOffset);elselv_chart_set_next(pTChartObject->chart, pTChartObject->ser2, 40 + iOffset);}iOffset++;if (iOffset > 10)iOffset = 0;lv_chart_refresh(pTChartObject->chart);}return 0; }實現圖表配置
//6. 圖表//6.1 創建一個圖表對象lv_obj_t * chart;chart = lv_chart_create(lv_scr_act(), NULL);//6.2 設置圖表的大小lv_obj_set_size(chart, 200, 150);//6.3 設置圖表的對齊位置lv_obj_align(chart, NULL, LV_ALIGN_IN_RIGHT_MID, -20, -30);//6.4 設置圖表的區域(LV_CHART_TYPE_AREA是線顯示的區域,LV_CHART_TYPE_LINE表示單純的線)lv_chart_set_type(chart, LV_CHART_TYPE_LINE); /*Show lines and points too*///6.5 設置圖表的透明度lv_chart_set_series_opa(chart, LV_OPA_70); /*Opacity of the data series*///6.6 設置數據系列的線寬或點半徑(線的粗細)lv_chart_set_series_width(chart, 2); /*Line width and point radious*///6.7 設置最大或最小的Y值lv_chart_set_range(chart, 0, 50);//6.9 設置每條數據線所具有的數據點個數,如果不設置的話,則默認值是 10lv_chart_set_point_count(chart, 10);//6.10 設置水平和垂直分割線lv_chart_set_div_line_count(chart, 4, 4);//6.11 設置 y 軸的數值范圍,[0,100]也是默認值lv_chart_set_range(chart, 0, 50);//6.12 設置 y 軸的主刻度線長度和次刻度線長度lv_chart_set_y_tick_length(chart, 10, 5);//6.13 設置 y 軸的主刻度標題和每個主刻度標題間的刻度數lv_chart_set_y_tick_texts(chart, "5\n4\n3\n2\n1\n0", 5, LV_CHART_AXIS_DRAW_LAST_TICK);//6.14 設置 x 軸的主刻度線長度和次刻度線長度lv_chart_set_x_tick_length(chart, 10, 5);//6.15 設置 x 軸的主刻度標題和每個主刻度標題間的刻度數lv_chart_set_x_tick_texts(chart, "0\n0.2\n0.4\n0.6\n0.8\n1.0", 5, LV_CHART_AXIS_DRAW_LAST_TICK);lv_chart_set_margin(chart, 40);//設置刻度區域的高度//6.16 分配數據系列并將其添加到圖表中lv_chart_series_t * ser1 = lv_chart_add_series(chart, LV_COLOR_RED);lv_chart_series_t * ser2 = lv_chart_add_series(chart, LV_COLOR_BLUE);//6.17 將所有數據右移,并在數據行上設置最右邊的數據for (int i = 0; i < 10; i++){if ((i%2)==0)lv_chart_set_next(chart, ser1, 10);elselv_chart_set_next(chart, ser1, 30);if ((i % 2) == 0)lv_chart_set_next(chart, ser2, 0);elselv_chart_set_next(chart, ser2, 30);}//6.18 如果圖表的數據行已更改,請刷新圖表lv_chart_refresh(chart); //6.19 創建一個線程,用于刷新圖表chartObject.chart = chart;chartObject.ser1 = ser1;chartObject.ser2 = ser2;HANDLE handle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)chart_thread_proc, (void*)&chartObject, 0, NULL); //函數類型轉換效果演示
總結
以上是生活随笔為你收集整理的lvgl chart的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于Goolgle最新Navigatio
- 下一篇: kubernetes pv回收策略