#indices #2d #coordinates #index #2d-grid #matrix

wrapping_coords2d

使用包装功能在1D索引和2D坐标之间进行转换

11个版本

0.1.10 2022年5月7日
0.1.9 2020年3月7日
0.1.8 2020年2月25日

数学类别中排名第724

每月下载量28

Apache-2.0

58KB
515 代码行

wrapping_coords2d

Rust软件包,用于在1D索引和2D坐标之间进行包装转换。

Crate Downloads Documentation License

版权所有 © 2020-2022 Fabio A. Correa Duran [email protected]

使用 WrappingCoords2d 将2D网格中的数据存储到1D容器(如 std::vec::Vec)中。x和y坐标都环绕网格的边界。 WrappingCoords2d 不是一个容器;它只是一个操作索引的工具。对于2D容器,请参阅array2d。有关坐标转换的更多示例,请参阅ameda

WrappingCoords2d 有助于设计细胞自动机、基于代理的模型和2D和3D的游戏世界。您可以将 WrappingCoords2d 作为实体-组件-系统 (ECS) 软件架构的一部分来使用,以实现高性能模型和灵活的游戏。请参阅我的ABM项目以获取示例。

请参阅wrapping_coords2d软件包的文档中的更多示例。

常见问题解答

为什么不为单元格的邻居创建迭代器?

在ECS设计中,索引比迭代器更合理。通常,使用带索引的循环比迭代器链更符合习惯。如果游戏世界或模型景观有多个组件,例如颜色、深度和肥力,则将每个组件保留在自己的向量中是有意义的。最简单的方法是使用它们的索引。然而,我愿意接受一个代码提交,以贡献将迭代器添加到邻居中的代码。

此软件包使用unsafe关键字吗?

不。

无运行时依赖