使用的是LVGL8.3版本,函数原型如下:
uint32_t lv_bezier3(uint32_t t, uint32_t u0, uint32_t u1, uint32_t u2, uint32_t u3)
我想指定4个点用于画一条贝塞尔曲线 ,每个点包含屏幕X,Y坐标。但这个函数好像不是使用的坐标数据,请指教,谢谢!
使用的是LVGL8.3版本,函数原型如下:
uint32_t lv_bezier3(uint32_t t, uint32_t u0, uint32_t u1, uint32_t u2, uint32_t u3)
我想指定4个点用于画一条贝塞尔曲线 ,每个点包含屏幕X,Y坐标。但这个函数好像不是使用的坐标数据,请指教,谢谢!
谢谢。这个例子我有看过,但是还是疑惑,我的屏幕是2560*1440的大分辨率屏,需要全屏范围画线,使用lv_line来画,lv_bezier3这个函数的参数我不知道如何和实际的屏幕坐标联系起来(X,Y),u0~u3的范围都是[0…LV_BEZIER_VAL_MAX]即0-1024,
lv_example_anim_3中代码是这样的:
static void refer_chart_cubic_bezier(void)
{
for(uint16_t i = 0; i <= CHART_POINTS_NUM; i ++) {
uint32_t t = i * (1024 / CHART_POINTS_NUM);//x
int32_t step = lv_bezier3(t, 0, ginfo.p1, ginfo.p2, 1024);//y
lv_chart_set_value_by_id2(ginfo.chart, ginfo.ser1, i, t, step);
}
lv_chart_refresh(ginfo.chart);
}
即t是x坐标范围为0-1024,lv_bezier3计算结果step是y坐标,这是相对坐标么?我需要的是绝对坐标。