c# - 如何从一维数组中获取特定部分的数据?
问题描述
我有一个常规的NativeArray颜色。我想根据给定的矩形有效地采样并从该数组中获取特定部分的数据。
假设我有这个 5x5(长度为 25)大小的一维颜色数组,我需要从这个矩形 (x:2, y:1, w:3, h:2) 中获取数据,如下图所示
我怎样才能做到这一点?
如果我尝试使用函数NativeArray<>.Copy它从索引复制到长度。因此,如果我指定索引 7 和 6 的长度,它将从 7 复制到 12,这对我不起作用。
解决方案
您发现NativeArray.Copy可以在副本应该开始的位置获取开始索引,在应该结束的位置获取结束索引。你的场景更复杂。您可以将 Native 数组视为 2D 数组,并使用嵌套的 for 循环将元素从其中复制到目标。Copy 方法也一样,它不是什么神奇的东西。
您可以使用以下公式将 2D x, y 索引转换为 1D 索引
i = y * width + x
推荐阅读
- android - 使用 gitLab ci/cd 时如何自动动态指定应用程序名称
- javascript - 使用 Javascript 将 Textarea 的 MaxLength 设置为 50
- javascript - 如何通过切换到不同的应用程序使用fabric js重新利用画布对象
- c++ - 如何在 C++ 中使 VS Code 缩进访问说明符?
- azure-maps - 可用的 Azure 地图图层
- javascript - 切换活动导航链接
- php - Solr 布尔查询中的子句过多。但是更新到 solr.max.booleanClauses 不起作用
- c++ - 可能与 main() 中的服务器数据类型一起使用的二维数组的类模板
- postgresql - 如何在 PostgreSQL 中随机返回多行?
- javascript - Firebase Auth:使用 Admin SDK 管理用户