算法求助,坐标(方块)交换位置

发布于 2022-09-04 06:07:24 字数 635 浏览 13 评论 0

图片1
坐标规则 x 轴向右递增 y 轴向下递增
每个方块坐标表示为: x y(第一个点坐标) w(宽) h(高)
坐标原点为 (1,1)
黄色方块 : 1,1 1,1
绿色方块: 2,1 2,2

然后交换两个方块的位置,如下图所示
图片描述
新的坐标为:

黄色方块: (3,1) 1,1
绿色方块: (1,1) 2,2

还有类似下图的例子,交换两个方块位置,求出新的坐标!
求坐标交换算法
图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

樱娆 2022-09-11 06:07:24

你的规则不明确,所以就不好说算法,比如看看下面这两种情况

clipboard.png

这两种情况直接交换坐标都会产生重叠,那么发生重叠之后到底是应该右移还是下移来规避重叠呢?

当然这两个图块比较小,位置也比较特殊,你可以说,第①种情况纵坐标相同,所以是左右交换,应该右移来规避重叠。②是横坐标相同,属于上下交换,应该下移来规避重叠。甚至,对于复杂一点的情况可以根据横纵坐标的偏移比例来确定属于左右交换还是上下交换……那么下面这种情况呢?

clipboard.png

还有,如果是下面这种情况,本来是没有重叠,但是交换位置之后未贴紧,又要不要进行移动贴紧呢?如果要,那么同样存在重叠类似的问题,即往哪个方向移的问题

clipboard.png

所以,你自己必须先把规则搞清楚。规则搞清楚了,剩下的就是一些状态判断和条件分支的处理了。写程序一定要搞清楚你的逻辑!!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文