gpt4 book ai didi

c# - 单循环获取两点之间的坐标

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:48:51 25 4
gpt4 key购买 nike

输入由两个坐标组成(x|y)具有相同的 x或相同y (这意味着它们总是在同一列或同一行)。

我想获取两者之间的所有坐标。

示例输入:

(2|2), (2|5)

示例输出:

(2|2), (2|3), (2|4), (2|5)

另一个例子:

(2|2), (5|2)

示例输出:

(2|2), (3|2), (4|2), (5|2)

我的方法是检查四个条件(y1 > y2x1 > x2y1 < y2x1 < x2 ),然后使用四个单独的循环

这是我的伪代码:

if (x1 > x2)
decrement x1 until x1 = x2, list all coordinates
else if (x1 < x2)
increment x1 until x1 = x2, list all coordinates
else if (y1 > y2)
decrement y1 until y1 = y2, list all coordinates
else if (y1 < y2)
increment y1 until y1 = y2, list all coordinates

虽然我正在寻找一种在一个循环中完成它的方法。

最佳答案

您可以通过找出哪些变量需要增加并在循环中使用 maxmin 函数来实现:

int x1 = 1;
int x2 = 6;
int y1 = 3;
int y2 = 5;

int min, max;

if (x1 == x2) {
min = Math.Min(y1,y2);
max = Math.Max(y1,y2);
} else {
min = Math.Min(x1,x2);
max = Math.Max(x1,x2);
}

for (int i = min; i < max; ++i) {
if (x1 == x2) {
Console.WriteLine(x1 + "/" + i);
else {
Console.WriteLine(i + "/" + y1);
}
}

请注意:我很久没有做C#了,这里没有编译器可以测试,所以请按照C#编写代码。另请注意:如果坐标相同,则程序不会执行任何操作,上面的代码中没有错误检查!这只是示例代码!

关于c# - 单循环获取两点之间的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34978223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com