javascript - 算法求助,坐标(方块)交换位置
巴扎黑
巴扎黑 2017-04-11 09:55:55
[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

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

巴扎黑
巴扎黑

全部回复(1)
大家讲道理

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

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

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号