gpt4 book ai didi

c# - 从 x1,y1 循环到 x2,y2,无论它们的顺序如何

转载 作者:太空宇宙 更新时间:2023-11-03 18:15:08 24 4
gpt4 key购买 nike

我希望能够通过两个点 (p1,p2) 选择图像的一部分。我的问题是,无论它们的顺序如何,我都想使用相同的循环。

现在我有这个:

for (int x = p1.X; x != p2.X; x += Math.Sign(p2.X - p1.X))
{
for (int y = p1.Y; y != p2.Y; y += Math.Sign(p2.Y - p1.Y))
{
MessageBox.Show(String.Format("{0} {1}", x, y));
}
}

在那个循环中我没有得到所有的数字:例如从 1/1 到 3/3 只到 2/2。

我知道如何需要再循环一次这两个循环,但由于我不知道我实际循环的方式(减少或增加)我不能只从循环中添加/减去一个。

如有任何帮助,我们将不胜感激!

最佳答案

您可以从最低的 X 循环到最高的 X,然后对 Y 执行相同的操作。

for (int x = Math.Min(p1.X, p2.X); x <= Math.Max(p1.X, p2.X); x++){
for (int y = Math.Min(p1.Y, p2.Y); y <= Math.Max(p1.Y, p2.Y); y++){
MessageBox.Show(String.Format("{0} {1}", x, y));
}
}

这不会从 [3,3] 走到 [1,1]。如果您真的关心方向,这种方法将行不通。

关于c# - 从 x1,y1 循环到 x2,y2,无论它们的顺序如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7729774/

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