作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
给定的是笛卡尔坐标系、起始位置 A (X/Y) 和终止位置 B (X/Y)。我想从 A 移动到 B。但是,我只能在 N、NE、E、SE、S、SW、W、NW 八个方向上移动。
我知道我可以通过与轴(八个方向)的单位向量的点积计算从当前位置 A 采取的这些方向中的“最佳”,其中最大的点积是采取的方向.但是这种方法会导致两个方向之间出现某种“振荡”,如果 A 恰好位于这两个方向之间的话。
所以我现在正在寻找一种算法来解决从 A 到 B 只有一个或最大值的问题。两个使用方向。当然我现在忽略了任何障碍,所以理论上我总是可以从 A 到 B,最多有两个不同的方向。我可能可以用一堆 if 语句来解决这个问题,但我更喜欢更优雅的解决方案...
我希望这是可以理解的:)
提前感谢您的任何想法!
亲切的问候,马蒂亚斯
最佳答案
最简单的解决方案是朝“对角线”方向前进,直到与目标位于同一行/列,然后使用水平/垂直方向。
换句话说:
关于algorithm - 如何在限制转弯的同时沿主要方向在笛卡尔空间内移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7424145/
我是一名优秀的程序员,十分优秀!