#point #array #vector #2d-array #tuple

point-index

用于索引二维数组的简单点库

3 个版本

0.1.2 2023年3月9日
0.1.1 2023年3月9日
0.1.0 2023年3月9日

#18#2d-array

MIT/Apache 许可

11KB
161 代码行

point-index

一个用于处理二维数组或向量的点库。

它具有所有四个基本方向的点加法以及标量乘法。

示例

这里有一些数组访问的示例

use point_index::*;
let mut vec = vec![vec![0, 1, 2], vec![3, 4, 5], vec![6, 7, 8]];
let mut point1 = Point { x: 1, y: 1 };
assert_eq!(vec[point1], 4);
// Up is the same as Point {x: 0, y: -1}
let point2 = point1 + UP;
assert_eq!(vec[point2], 1);
// Down is the same as Point {x: 0, y: 1}
let point3 = point2 + DOWN * 2;
assert_eq!(vec[point3], 7);
// Up left is the same as Point {x: -1, y: -1}
let point4 = point1 + UP_LEFT;
assert_eq!(vec[point4], 0)

这里有一些数组修改的示例

use point_index::*;
let mut arr = [[0; 10]; 10];
// down right is the same as Point {x: 1, y: 1}
for x in 0 .. 10{
    arr[DOWN_RIGHT * x] = x
}
assert_eq!(
    arr,
   [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 2, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 3, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 4, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 5, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 6, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 7, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 8, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 9]]

)

许可证:MIT OR Apache-2.0

无运行时依赖