Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C+中绘制生成迷宫的简单框架+;_C++_Maze_Kruskals Algorithm - Fatal编程技术网

C++ 在C+中绘制生成迷宫的简单框架+;

C++ 在C+中绘制生成迷宫的简单框架+;,c++,maze,kruskals-algorithm,C++,Maze,Kruskals Algorithm,我使用Kruskal的随机版本生成了一个迷宫。生成迷宫的程序逻辑对我来说不是问题。我很难弄清楚如何实际显示迷宫图形 据我所知,最初的迷宫将以一个H×W网格开始,每个单元都有其所有的“边界”/“墙”。我唯一的经验是C++绘图,只是在终端打印字符,代表不同的图形。但是,它似乎不适合于更复杂的图形,例如由4条更细的黑线包围的具有一定宽度和高度的单元。我想我可以用8个墙字符围绕每个单元格字符,但这看起来很麻烦,也不是很优雅(墙看起来很笨重/不薄) 我在电视上看到了一些非常棒的截图,这样人们就可以拍摄他们

我使用Kruskal的随机版本生成了一个迷宫。生成迷宫的程序逻辑对我来说不是问题。我很难弄清楚如何实际显示迷宫图形

据我所知,最初的迷宫将以一个H×W网格开始,每个单元都有其所有的“边界”/“墙”。我唯一的经验是C++绘图,只是在终端打印字符,代表不同的图形。但是,它似乎不适合于更复杂的图形,例如由4条更细的黑线包围的具有一定宽度和高度的单元。我想我可以用8个墙字符围绕每个单元格字符,但这看起来很麻烦,也不是很优雅(墙看起来很笨重/不薄)

我在电视上看到了一些非常棒的截图,这样人们就可以拍摄他们生成的迷宫,在那里他们可以轻松地画出细胞周围的薄壁。我从未使用过C++中的绘图/绘图库,经过几个小时的搜索,我仍然很迷茫。
对于那些算法狂热者,在C++中绘制简单网格/迷宫最简单的框架是什么?p> 如果没有用于显示图像的特定库,您将无法实际显示图像。拥有一系列用于生成、编辑和显示图像的工具。从系统的逐步安装到使用OpenCV执行任何操作,都有大量的工作要做

不管您使用的库是什么,一个足够简单的方法可能是

  • 在内存中创建一个图像,网格中每单位有n个像素。因此,您的图像将是(n*H)x(n*W)像素大
  • 将所有像素设置为单一颜色
  • 在网格中的每一个单元(路径)上循环,并在图像上绘制一个第二颜色的正方形,从(n*W,n*H)到(n*[W+1],n*[H+1])
  • 将图像绘制到输出对象
  • 你最终会得到一个2色调的图像,背景颜色是墙壁,前景颜色是路径


    不幸的是,如果没有代码示例或您选择您想要使用的库,我就不能说得更具体。OpenCV被广泛使用并得到广泛支持,因此我建议。

    如果没有用于显示图像的特定库,您将无法实际显示图像。拥有一系列用于生成、编辑和显示图像的工具。从系统的逐步安装到使用OpenCV执行任何操作,都有大量的工作要做

    不管您使用的库是什么,一个足够简单的方法可能是

  • 在内存中创建一个图像,网格中每单位有n个像素。因此,您的图像将是(n*H)x(n*W)像素大
  • 将所有像素设置为单一颜色
  • 在网格中的每一个单元(路径)上循环,并在图像上绘制一个第二颜色的正方形,从(n*W,n*H)到(n*[W+1],n*[H+1])
  • 将图像绘制到输出对象
  • 你最终会得到一个2色调的图像,背景颜色是墙壁,前景颜色是路径


    不幸的是,如果没有代码示例或您选择您想要使用的库,我就不能说得更具体。OpenCV被广泛使用并得到广泛支持,因此我建议您这样做。

    您被否决的原因可能是,询问最佳或最简单的框架是一个基于意见的问题,并不严格属于堆栈溢出问题。@turoni很可能是这样,我原来的帖子实际上是两倍长,而且有点模糊,所以我把它剪下来,编辑了一堆。话虽如此,对于我未来的职位,我将尽我所能远离任何过于开放或基于观点的东西。谢谢你的建议,伙计!这个问题的措辞可能更符合事实,而不是基于观点,例如“哪些库允许您通过教程在屏幕上绘制和显示图像?”我认为仍然会有人对这样一个问题有疑问,但至少不是基于意见的。仅供参考,如何在Kruskal生成中获得更多乐趣:您被否决的原因可能是,询问最佳或最简单的框架是基于意见的问题,不严格属于堆栈溢出。@turoni,这是最有可能的是,我原来的帖子实际上是原来的两倍长,而且有点模糊,所以我把它删掉,编辑了一堆。话虽如此,对于我未来的职位,我将尽我所能远离任何过于开放或基于观点的东西。谢谢你的建议,伙计!这个问题的措辞可能更符合事实,而不是基于观点,例如“哪些库允许您通过教程在屏幕上绘制和显示图像?”我认为仍然会有人对这样的问题有疑问,但这至少不是基于意见的。仅供参考,如何让Kruskal一代更有趣:OpenCV看起来很棒,还有很多教程!谢谢你的建议,你的方法非常有帮助。如果有帮助,请记住向上投票:)我实际上投了向上的票,但我猜,因为我的声誉低于15点,可能它不起作用?不管怎么说,给你,伙计!OpenCV看起来很棒,还有很多教程!谢谢你的建议,你的方法非常有帮助。如果有帮助,请记住向上投票:)我实际上投了向上的票,但我猜,因为我的声誉低于15点,可能它不起作用?不管怎么说,给你,伙计!