坐标规则 x 轴向右递增 y 轴向下递增
每个方块坐标表示为: x y(第一个点坐标) w(宽) h(高)
坐标原点为 (1,1)
黄色方块 : 1,1 1,1
绿色方块: 2,1 2,2
然后交换两个方块的位置,如下图所示
新的坐标为:
黄色方块: (3,1) 1,1
绿色方块: (1,1) 2,2
还有类似下图的例子,交换两个方块位置,求出新的坐标!
求坐标交换算法
坐标规则 x 轴向右递增 y 轴向下递增
每个方块坐标表示为: x y(第一个点坐标) w(宽) h(高)
坐标原点为 (1,1)
黄色方块 : 1,1 1,1
绿色方块: 2,1 2,2
然后交换两个方块的位置,如下图所示
新的坐标为:
黄色方块: (3,1) 1,1
绿色方块: (1,1) 2,2
还有类似下图的例子,交换两个方块位置,求出新的坐标!
求坐标交换算法
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
你的规则不明确,所以就不好说算法,比如看看下面这两种情况
这两种情况直接交换坐标都会产生重叠,那么发生重叠之后到底是应该右移还是下移来规避重叠呢?
当然这两个图块比较小,位置也比较特殊,你可以说,第①种情况纵坐标相同,所以是左右交换,应该右移来规避重叠。②是横坐标相同,属于上下交换,应该下移来规避重叠。甚至,对于复杂一点的情况可以根据横纵坐标的偏移比例来确定属于左右交换还是上下交换……那么下面这种情况呢?
还有,如果是下面这种情况,本来是没有重叠,但是交换位置之后未贴紧,又要不要进行移动贴紧呢?如果要,那么同样存在重叠类似的问题,即往哪个方向移的问题
所以,你自己必须先把规则搞清楚。规则搞清楚了,剩下的就是一些状态判断和条件分支的处理了。写程序一定要搞清楚你的逻辑!!