void lv_obj_set_angle(lv_obj_t * obj, lv_coord_t angle)函数的源代码
时间: 2023-10-10 19:12:02 浏览: 52
以下是 `lv_obj_set_angle` 函数的源代码:
```c
void lv_obj_set_angle(lv_obj_t * obj, lv_coord_t angle)
{
if(obj->angle == angle) return;
lv_style_int_t old_top = obj->coords.y1;
lv_style_int_t old_left = obj->coords.x1;
obj->angle = angle;
lv_style_int_t new_top = obj->coords.y1;
lv_style_int_t new_left = obj->coords.x1;
if(old_top != new_top || old_left != new_left) {
lv_obj_invalidate(obj);
}
}
```
`lv_obj_set_angle` 函数用于设置对象的旋转角度。它接受两个参数:第一个参数是要设置角度的对象,第二个参数是要设置的角度值。该函数首先检查对象的当前角度是否与新角度相同,如果相同则不执行任何操作。否则,它会将对象的角度设置为新角度,并检查对象的位置是否发生了变化。如果位置发生了变化,则使对象失效并需要重新绘制。
相关问题
lv_obj_set_style_local_transform_angle函数
`lv_obj_set_style_local_transform_angle` 函数是 LittlevGL 图形库中的一个函数,用于设置对象的局部样式属性。这个函数用于设置对象的旋转角度,即将对象绕其中心点旋转一定的角度。函数的原型如下:
```c
void lv_obj_set_style_local_transform_angle(lv_obj_t * obj, lv_obj_part_t part, lv_state_t state, lv_coord_t angle);
```
其中,参数 `obj` 是要设置样式的对象指针,参数 `part` 是对象的部分,例如 `LV_OBJ_PART_MAIN` 表示对象的主体部分,参数 `state` 是对象的状态,例如 `LV_STATE_DEFAULT` 表示对象的默认状态,参数 `angle` 是设置的旋转角度。
例如,下面的代码将一个对象的旋转角度设置为 45 度:
```c
lv_obj_set_style_local_transform_angle(obj, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, 45);
```
需要注意的是,这个函数只是设置对象的局部样式属性,如果需要设置全局样式属性,可以使用 `lv_obj_set_style_transform_angle` 函数。
lv_obj_set_angle 函数的具体定义及使用说明
`lv_obj_set_angle` 函数是 LittlevGL 库中的一个函数,用于设置一个对象(如图形、按钮、标签等)的旋转角度。其函数原型如下:
```c
void lv_obj_set_angle(lv_obj_t * obj, lv_coord_t angle);
```
其中,`obj` 参数是要设置旋转角度的对象指针,`angle` 参数是要设置的旋转角度,单位为度(°)。例如,如果要将对象逆时针旋转 45 度,则 `angle` 参数应该设置为 45。
需要注意的是,旋转角度是针对对象的中心点进行旋转的。如果要改变对象的旋转中心点,可以使用 `lv_obj_set_pivot` 函数。
以下是一个示例代码,用于将一个矩形对象逆时针旋转 45 度:
```c
lv_obj_t * rect = lv_obj_create(lv_scr_act()); // 创建一个矩形对象
lv_obj_set_size(rect, 100, 50); // 设置矩形对象的大小
lv_obj_set_pos(rect, 50, 50); // 设置矩形对象的位置
lv_obj_set_style_bg_color(rect, LV_COLOR_RED, 0); // 设置矩形对象的背景颜色为红色
lv_obj_set_angle(rect, 45); // 将矩形对象逆时针旋转 45 度
```
执行上述代码后,屏幕上会显示一个红色的矩形对象,该对象被逆时针旋转了 45 度。