方形缓存区

如何制作点的方形缓存区

 

之前收到客户的需求,需要制作点图层的方形缓存区。但是在ArcGIS中并没有提供方形缓存区,只能通过Buffer工具制作圆形缓存区。那么如何生成方形缓存区呢,莫非需要Engine写程序根据点坐标寻找方形缓存区的四角坐标,然后再生成正方形要素吗?太麻烦了吧。接下来看看ArcGIS 数据互操作模块如何来解决这样的问题的。

1 首先还是需要通过Buffer工具生成圆形缓存区。

2 启用FME。在“我的工具箱”中新建一个ETL

3  使用BoundingBoxAccumulator工具,设置相应的参数进行圆形缓存区变成方形缓存区。

4  设置好相应的参数,必须保证Select Group By Item中选择的ID为每个要素都为不同的值,如果ID都一样值就会导致生产一个大的方形缓存区。还有就是选择Buffer_Dist

5  最终我们就通过圆形缓存区的“边界BOX”生成了方形缓存区。效果如下

 

### 使用 LVGL 库在单片机上绘制正方形 为了使用 LVGL 库在单片机上绘制正方形,需要初始化 LVGL 并创建一个简单的图形对象。LVGL 是一款专为嵌入式系统设计的轻量级 GUI 图形库,具有易于使用的特性以及较低的资源消耗[^1]。 #### 初始化 LVGL 和显示驱动程序 首先,在应用中集成并配置好 LVGL 后,需确保已正确设置显示屏驱动程序以便可以正常渲染图像: ```c #include "lvgl/lvgl.h" // 假设已经完成了硬件初始化和 lv_init() 调用 void setup_display(void) { // 这里应该放置具体的显示器初始化代码... } int main(void) { // 初始化LVGL lv_init(); // 设置显示缓冲区和其他必要的参数 static lv_disp_buf_t disp_buf; static lv_color_t buf[LV_HOR_RES_MAX * 10]; // 创建颜色缓存 lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 10); // 注册显示设备 lv_disp_drv_t disp_drv; lv_disp_drv_init(&disp_drv); /*基本的显示驱动*/ disp_drv.buffer = &disp_buf; /*分配给此显示器的缓冲区*/ disp_drv.flush_cb = my_disp_flush; /*刷新回调函数*/ lv_disp_drv_register(&disp_drv); while (true) { lv_task_handler(); // 处理LVGL的任务队列 HAL_Delay(5); // 短暂延迟以防止CPU过载 } } ``` #### 绘制正方形 接下来定义用于创建矩形(即正方形)的具体逻辑。通过调用 `lv_obj_create` 来新建一个矩形对象,并调整其属性使其成为正方形形状: ```c static void create_square(lv_coord_t size) { lv_obj_t *square; square = lv_obj_create(NULL); // 创建一个新的空白对象作为容器 lv_obj_set_size(square, size, size); // 设定宽度高度相同形成正方形 lv_obj_align(square, LV_ALIGN_CENTER, 0, 0); // 居中对齐 lv_obj_add_style(square, &style_box, 0); // 添加样式使它可见 // 定义边框线宽、圆角半径等外观特征 static const lv_style_prop_t style_props[] = { LV_STYLE_BORDER_WIDTH, LV_STYLE_RADIUS, LV_STYLE_PROP_INV }; static lv_style_t style_box; lv_style_init(&style_box); lv_style_set_border_width(&style_box, 2); // 边框厚度 lv_style_set_radius(&style_box, 5); // 圆角大小 lv_style_set_bg_opa(&style_box, LV_OPA_COVER); // 背景透明度完全不透 lv_style_set_bg_color(&style_box, lv_palette_main(LV_PALETTE_BLUE)); //背景色蓝色 lv_style_set_border_color(&style_box, lv_palette_main(LV_PALETTE_RED));//边框红色 } ``` 最后一步是在适当的位置调用上述方法来实际生成所需的正方形元素。通常这会在应用程序启动后的某个时刻完成,比如当用户界面首次加载时。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值