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

查看:141
本文介绍了javascript - 算法求助,坐标(方块)交换位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题


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

然后交换两个方块的位置,如下图所示

新的坐标为:

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

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

解决方案

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

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

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

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

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

这篇关于javascript - 算法求助,坐标(方块)交换位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆