程序设计

专业和发烧友程序员的问答





10
表示并解决给定图像的迷宫
代表并解决给定图像的迷宫的最佳方法是什么? 给定JPEG图像(如上所示),读入,将其解析为某种数据结构并解决迷宫的最佳方法是什么?我的第一个本能是逐像素读取图像并将其存储在布尔值列表(数组)中:True对于白色像素,False对于非白色像素(可以丢弃颜色)。这种方法的问题在于图像可能不是“像素完美”的。我的意思只是说,如果墙壁上的某处有白色像素,可能会产生意外的路径。 另一种方法(经过一番思考后才想到)是将图像转换为SVG文件-SVG文件是在画布上绘制的路径的列表。这样,可以将路径读入相同种类的列表(布尔值),其中True表示路径或墙壁,False表示可移动的空间。如果转换不是100%准确,并且不能完全连接所有墙,从而产生间隙,则此方法会出现问题。 转换为SVG的另一个问题是这些线不是“完美”的直线。这导致路径是三次贝塞尔曲线。使用由整数索引的布尔值列表(数组),曲线将不易转移,并且必须计算曲线上直线的所有点,但不会与列表索引完全匹配。 我假设虽然其中一种方法可能会(虽然可能不会)起作用,但考虑到如此大的图像,它们的效率很低,并且存在更好的方法。如何做到最好(最有效和/或最低复杂度)?有没有最好的方法? 然后是迷宫的解决。如果我使用前两种方法中的任何一种,则基本上将得到一个矩阵。根据该答案,表示迷宫的一种好方法是使用树,而使用A *算法来解决它的好方法。一个人如何根据图像创建一棵树?有任何想法吗? TL; DR 解析的最佳方法?变成什么数据结构?所述结构将如何帮助/阻碍解决? 更新 我已尝试使用numpy@Thomas建议的方式实现@Mikhail用Python编写的内容。我认为该算法是正确的,但无法正常运行。(下面的代码。)PNG库是PyPNG。 import png, numpy, Queue, operator, itertools def is_white(coord, image): """ Returns whether (x, y) is approx. a white pixel.""" a = True for i in xrange(3): if not a: break a = image[coord[1]][coord[0] * 3 + i] > …

2
XML解析的最佳节点模块
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 改善这个问题 就XML解析而言,我可以使用哪个最佳的节点模块进行XML解析?

1
“ int main(){((([](){})());}”如何有效C ++?
最近,我遇到了以下深奥的代码。 int main(){(([](){})());} 重新格式化,如下所示以使其更具可读性: int main(){ (([](){})()); // Um... what?!?! } 但是我无法理解(([](){})())有效代码的有效性。 它看起来不像函数指针语法。 这不可能是操作员重载的把戏。代码按原样编译。 Google在这种全符号搜索中并没有太大帮助。但是它可以在Visual Studio 2010中编译,但不输出任何内容。没有错误,也没有警告。因此,它看起来像有效的代码。 在Javascript和C函数指针之外,我从未见过任何如此奇怪的有效代码。 有人可以解释这是如何有效的C ++吗?
271 c++  c++11  lambda  syntax 

9
Octave和MATLAB之间的区别?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 4年前关闭。 改善这个问题 我是一个了解Python,Ruby和一些C的程序员,他们正试图决定学习GNU Octave还是Matlab。我知道它们有很多共同点,但是我尚不清楚语法甚至数据结构有多相似。每个人都说它们“相似”,但是没有人说它们实际上有多相似。上面的链接显示了几个示例,它们在语法上相似或相同,这对整个语言都是正确的吗? 我正在尝试学习通用语言,以进行更多的科学计算,可能使用一些图像分析库。我知道我可以编程使用许多其他语言,但是我的顾问说,了解MATLAB或Octave在科学中至关重要。 此外,Matlab是否值得付出代价?我没有很多钱,但是如果图书馆或其他地方有重要区别,我相信我会找到钱的。
271 matlab  octave 

21
是否有Node.js的模板引擎?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我正在尝试使用Node.js构建整个Web应用程序。是否有类似于(例如)Django模板引擎之类的模板引擎或至少允许您扩展基本模板的类似引擎?

12
片段超过另一个片段问题
当我#77000000在另一个片段(我们称其为主要片段)上显示一个片段(背景为全屏)时,我的主要片段仍会对点击做出反应(即使没有看到也可以单击按钮)。 问题:如何防止点击第一个(主要)片段? 编辑 不幸的是,我不能只隐藏主片段,因为我在第二个片段上使用了透明背景(因此,用户可以看到后面的内容)。


21
如何在Android中更改Drawable的颜色?
我正在开发一个android应用程序,并且有一个可绘制的图像是从源图像加载的。在此图像上,我想将所有白色像素转换为另一种颜色,例如蓝色,然后缓存生成的Drawable对象,以便以后使用。 例如,假设我有一个20x20 PNG文件,中间有一个白色圆圈,圆圈之外的所有内容都是透明的。将白色圆圈变成蓝色并缓存结果的最佳方法是什么?如果我要使用该源图像创建几个新的Drawable(例如蓝色,红色,绿色,橙色等),答案是否会改变? 我猜想我会以某种方式使用ColorMatrix,但是我不确定如何使用。

16
在npm上安装:未处理的拒绝错误:EACCES:权限被拒绝
我设法破坏了npm安装程序,每当尝试使用安装软件包时npm install,都会收到以下错误消息: 未处理的拒绝错误:EACCES:权限被拒绝,打开'/Users/marknorgate/.npm/_cacache/tmp/a449402d' 我尝试过重新安装node&npm,也尝试使用这些说明将我的npm缓存重定位到其他地方,但没有任何效果。 我该如何运作?
271 npm  permissions 

12
如何最好地在终端中显示MySQL SELECT返回太多字段?
我正在使用PuTTY运行: mysql> SELECT * FROM sometable; sometable有很多字段,这导致试图在终端中显示很多列。这些字段环绕到下一行,因此很难将字段名称与字段标题对齐。 在终端中查看此类数据有哪些解决方案? 我没有也不想访问phpMyAdmin-或任何其他GUI界面。我正在寻找这样的命令行解决方案:将MySQL查询结果保存到文本或CVS文件中


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.