algorithm - Walker 在基于像素的形状的边缘
问题描述
我想创建一个可以绕任何形状行走的助行器。形状可以是矩阵中的像素颜色或图形上的选定边。walker有两个功能,一是确定下一步,二是移动到下一步。步行者从与形状相邻的某个点开始,并有一个大致的方向(顺时针或逆时针)
关于我应该如何解决这个问题的任何提示?
解决方案
提示:如果你顺时针方向,将右手放在形状上。
这意味着代码需要跟踪步行者的方向。在示例中,步行者最初面朝北(假设顶部为北,右侧为东)。走了一步,行者仍是朝北。
walker 的方向决定了代码检查下一个有效移动的顺序,如下表所示:
方向 | 检查方向 |
---|---|
北 | 东、北、西、南 |
东 | 南、东、北、西 |
南 | 西、南、东、北 |
西方 | 北、西、南、东 |
因此,必须为步行者提供起始位置、顺时针/逆时针指示和初始方向。
推荐阅读
- ruby-on-rails - 如何在rails haml中呈现文本字段
- c# - UWP-App 创建的文件未在 Windows 10 1803 中编制索引
- javascript - 使用 linqjs 使用另一个数组中的值过滤一个数组
- selenium - 是否可以使用 52 之后的 Firefox 运行 selenium 3.x 测试,将“木偶”功能设置为 false(不使用 GeckoDriver)?
- ms-access - 如何在 MS Access 2016 中按日期搜索联合查询?
- java - GenericType 不适用于 Java 中的模板
- vb.net - 在 VB.net 中使用 winsock 无法接收整个文本
- javascript - d3 v4垂直条形图问题,条形文字
- typo3 - TYPO3 - 如何在页面的某个位置使用打字稿呈现 felogin?
- ssl - Kubernetes tls 证书 issier 未颁发