问题历史/原点

最近我偶然发现Twitch.TV上的 Channels 来自执行经典游戏速度的玩家 . 其中一人打了The Legend of Zelda - A Link to the Past . 我看到了很多低效的动作,我开始怀疑 - 鉴于世界 Map 数据 - 是否有可能编写一个执行完美速度的机器人 . 一个经常出现的子问题是找到一个平面中两点之间的最短路径,我认为这是一个非常有趣的问题,我开始对此进行更多的研究 .

类似的Stackoverflow问题已经发布

... 和更多

其中答案总是为Superproblem(如下所述)提供不同的解决方案,例如使用基于网格的方法,而不是我感兴趣的实际子问题(如下所述) .

Superproblem解决方案描述

给定平面中的两个点 X=(x1,x2) 和 Y=(y1,y2) - 如果平面包含路径可能无法通过的障碍物/区域,那么从 X 到 Y 的最短路径是多少?

Differently/ More visually 从Link的当前位置到 Map 上的第二个红点的最短路径是什么,因为他无法爬过墙壁或穿过灌木丛?

为此,构造了一个带有 V= {X,Y} U {"Corner-Points of obstacles}" 的所谓的Visibility Graph . 当且仅当可以从 P 到 Q 绘制直线而不穿过任何障碍物时,边缘插入点 P and Q 之间 . 每个边缘由它连接的点之间的Eucledian Distance加权 .

在上面的示例中,可见性图表看起来像这样 . 为了便于阅读,我省略了一些边缘和重量 . 阴影区域显示障碍 .

然后,可以使用可见性图上的开发者最喜欢的最短路径算法来计算最短路径 .

子问题描述

让我们首先将障碍定义为不可通过的地形的连续区域 . 如何找到所有障碍物的最小数量的所需角落(以及角落的坐标)来构建执行最短路径计算所需的最小可能性图表?

对于矩形障碍物,很容易找到角落,因为草图中只有很少的锋利边缘......

...或应用于游戏内场景

然而,一旦障碍物具有对角线“前线”,由于诱导的拼图模式(无论角度),获得角落变得非常重要 . 下面的屏幕截图说明了这个问题:左侧图像显示哪个坐标点应该被识别为角点,而右侧图片显示由于“竖锯” - 对角线图案而插入附加点的位置 .

现在的问题是:如何从可能非常大的可见性图中排除/防止这些不必要的角点(被插入)?

java棋盘最短路径障碍物_(Eucledian最短路径)检测平面中障碍物的角落相关推荐

  1. 用python画微笑脸表情_一种检测视频中人脸微笑表情的方法与流程

    本发明涉及视频检测技术领域,特别涉及一种视频中人脸微笑表情的检测方法. 背景技术: 近几年来,表情识别技术在计算机视觉和模式识别领域逐步成为一个重要的研究热点,已经有越来越多的科研成果是基于图像或视频 ...

  2. opencv 识别长方形_使用OpenCV检测图像中的矩形

    本文实例为大家分享了OpenCV检测图像中矩形的具体代码,供大家参考,具体内容如下 前言 1.OpenCV没有内置的矩形检测的函数,如果想检测矩形,要自己去实现. 2.我这里使用的OpenCV版本是3 ...

  3. 五子棋 java 棋盘变大_【java求助!】我的五子棋棋盘怎么加边框~!!??

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 public ChessClient1(String host){ ticTacToeHost=host; displayArea=new JTextAr ...

  4. java 删除过期文件_定时脚本: 删除HDFS中的过期文件

    1. 基本原理: 通过hadoop fs -ls *命令获取相关文件或目录的修改时间,然后与设定的过期时间进行比较,之后执行删除操作即可 2. 相关代码: #!/bin/bash source ~/. ...

  5. java url json字符串_使用HttpClient将URL中的JSON查询字符串发送到Web服务(Java)

    我有一个我建立的Web服务...我现在要做的是发送一个简单的请求,其中包含一个从Tapestry Web应用程序到该Web服务的json查询字符串.我四处搜索,大多数人都说使用Apache HttpC ...

  6. java se13安装教程_在Linux发行版中安装Java 13/OpenJDK 13的方法

    本文介绍在Linux发行版Ubuntu 18.04/16.04.Debian 10/9.CentOS 7/8.Fedora 31/30/29中安装Java 13/OpenJDK 13.Java SE ...

  7. java web 自定义标签_如何在JavaWeb程序中使用自定义标签

    展开全部 tld定义格式32313133353236313431303231363533e78988e69d8331333361323566 [java] view plain copy print? ...

  8. java dom4j 去除空行_如何从XML文件中删除多余的空行?

    总之;我在XML文件中生成了很多空行,并且我正在寻找一种方法将它们作为一种倾斜文件的方式来删除它们.我怎样才能做到这一点 ?如何从XML文件中删除多余的空行? 有关详细说明,目前,我有这个XML文件: ...

  9. java opencv 开发环境_在IntelliJ IDEA 13中配置OpenCV的Java开发环境

    准备工作: 下载IDEA 13(这里以版本13为例,后面简称IDEA): 下载Java JDK(用于配置基本的Java开发环境): 下载OpenCV 2.4.9(这里以版本2.4.9为例,据这篇文章说 ...

  10. lstm中look_back的大小选择_基于机器学习检测僵尸网络中的域名生成算法

    0x01 Absert 恶意软件通常使用域名生成算法(DGA)作为联系其C&C服务器的机制.近年来,基于机器学习已经提出了不同的方法来自动检测生成的域名.但也存在一些问题.第一个问题是,由于缺 ...

最新文章

  1. Isight 命令行运行任务
  2. 苹果公司提出Mobile-ViT | 更小更轻精度更高,MobileNets或成为历史
  3. MFC导出对话框类DLL的实现
  4. 张小龙:如何把产品做简单
  5. JAVA框架--hibernate、struts2、spring
  6. WaterfallTree(瀑布树) 详细技术分析系列
  7. 各类曲线的参数方程_常见曲线的参数方程
  8. matlab 传函将s换为jw,已知单位负反馈系统开环传递函数为20 s(0.5s 1),
  9. 公司文案编辑常用迅捷PDF转换成Word转换器
  10. 码医自学法V2.2(附名老中医)
  11. FileZilla的下载与安装
  12. macbook pro 2017版电池问题,八九十的电,用着忽然关机,再开机提示充电才行。
  13. Vue3的生命周期的使用
  14. 你了解HTTP2协议吗?(二)
  15. 序文 【IT圈是个什么玩意儿 1 】
  16. Qt学习 第21节:窗口初始化EVENT
  17. flutter 国际化flutter使用 intl插件,provider状态保存
  18. MySQL中 1305-FUNCTION liangshanhero2.getdate does not exit 问题解决
  19. Linux的PS修改名称,ps命令的10个例子
  20. 【通俗易懂的解释】HttpSession session = request.getSession(false);中的false是什么意思

热门文章

  1. 038--想和权证恋个爱
  2. centos中设置邮件发送
  3. 网络安全:关于Caesar密码的加密解密
  4. 解决 手机能连接上wifi而电脑却却不能连接上wifi的情况
  5. SOA、网格计算、云计算与P2P技术
  6. Ubuntu下快捷方式图标存放位置
  7. 串口通讯调试-串口调试助手
  8. c语言模拟洪泛路由算法,[Angular, TypeScript, 路由算法] 模拟IP层路由协议,实现LS算法、洪泛算法、DV算法、路由毒化...
  9. kali linux 怎么攻击IP,Kali Linux实战篇:Ettercap 使用教程 DNS欺骗攻击实战
  10. 开年工作重点:帮助同事找到工作的价值