我在三维空间中有两个点,我想写一个条件来确定两个点是否相邻:它们在整数格中是否只相隔一个单位
我有一个名为Point的结构体,它包含x、y和z坐标。然后在main函数中,我设置点a、B、c、d和e的值,并将它们推到一个向量中。然后在for循环中,我想检查两个点是否相邻。目前我只是检查它们是否在同一个轴上,但我不知道如何继续。
struct Point {
int x;
int y;
int z;
};
bool adjacent(Point a, Point b) { ??? }
int main() {
struct Point a = {0, 0, 0};
struct Point b = {0, 0, -1};
struct Point c = {1, 0, -1};
struct Point d = {1, -1, -1};
struct Point e = {2, -1, -1};
assert(adjacent(a, b));
assert(adjacent(b, c));
assert(adjacent(c, d));
assert(adjacent(d, e));
assert(!adjacent(a, c));
}
我所说的相邻是指类似于这张照片中的东西:
1条答案
按热度按时间yfjy0ee71#
非常简要地说:
遍历点对非常简单:第一指针
a
遍历索引0-(n-2);第二点b
从a
的位置遍历索引直到结束n-1
。在给定整数坐标的情况下,检查相邻关系也很容易。
diff
= 1**当且仅当这两个点相邻。