算法求助,坐标(方块)交换位置
坐标规则 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的规则不明确,所以就不好说算法,比如看看下面这两种情况
这两种情况直接交换坐标都会产生重叠,那么发生重叠之后到底是应该右移还是下移来规避重叠呢?
当然这两个图块比较小,位置也比较特殊,你可以说,第①种情况纵坐标相同,所以是左右交换,应该右移来规避重叠。②是横坐标相同,属于上下交换,应该下移来规避重叠。甚至,对于复杂一点的情况可以根据横纵坐标的偏移比例来确定属于左右交换还是上下交换……那么下面这种情况呢?
还有,如果是下面这种情况,本来是没有重叠,但是交换位置之后未贴紧,又要不要进行移动贴紧呢?如果要,那么同样存在重叠类似的问题,即往哪个方向移的问题
所以,你自己必须先把规则搞清楚。规则搞清楚了,剩下的就是一些状态判断和条件分支的处理了。写程序一定要搞清楚你的逻辑!!