我正在用JavaScript(http://www.isogenicengine.com/demos/1.1.0/lander/)编写一个简单的月球着陆器克隆,而不是只有高低的基本景观,我想要一个算法来生成随机的洞穴状空间。给定一个矩形区域来处理[0,0,1920,1200],该算法应该能够生成如下图所示的内容。理想情况下,任何一个洞穴区域的“入口”都应该有一个设定的宽度,以便着陆器可以进入“内部”。
我考虑过这可能是不可能的,我可以取而代之的是画一堆像上面的图像,并将像素html" target="_blank">数据转换成粗糙的多边形数据,但随机生成的水平会更酷!
对于超级硬核加分来说,指定有多少洞穴状结构的能力将更加令人敬畏。
如果有人有类似的JavaScript实现,那也会有很大帮助!
从了解什么是气泡图开始,因为它在体系结构中使用。这是一个空间的拓扑图,用气泡作为空间,用线表示通道。我没有找到任何一个伟大的网页可以快速推荐,但做一个图像搜索产生了很多例子。
气泡图可以看作是以气泡为顶点的图。在您的示例中,将“Sky”(包括顶部边缘的斑点)建模为顶点。洞穴是另一个顶点,入口是一条边。有了这个透视图,就可以很容易地生成任意多的洞穴般的复杂性。
下一个技巧是把它变成几何学。本质上,你想从图的骨架中推出来,在玩家可以导航的地方制造空隙。同时,你要确保这些空隙不会推出太远,变薄或消除墙壁。所以你还需要对实体区域建模,这是用对偶图完成的。对偶图“在”原始图的“下面”,在这个意义上,边缘交叉代表冲突,它被解决为有利于虚空而不是实心。
总结:(1)用你想要的特征做一个拓扑图。(2)为图创建几何图形,给每个顶点指定位置,给每个边指定路径。(3)构造一个对偶图,并赋予其几何形状。(4)通过向外增长来充实与每个图相关的空间,以有利于通过而不是堵塞的方式解决冲突。
您可能想要说服自己,最终几何学的周长列表可以通过图的半边遍历生成,就像一只手在墙上走迷宫一样。
问题内容: 我需要使用标准Python包创建一个表示多边形的二进制掩码的numpy 2D数组。 输入:多边形顶点,图像尺寸 输出:多边形的二进制掩码(numpy 2D数组) (更大的上下文:我想使用scipy.ndimage.morphology.distance_transform_edt获得该多边形的距离变换。) 谁能告诉我该怎么做? 问题答案: 答案很简单:
我想创建一个多边形从形状点。
我有两个形状多边形实例(由lon,lat点组成),在不同的部分相交。我试图遍历,确定两个多边形之间是否有交集,然后创建一个新的多边形,排除该交集。从所附的图像来看,我基本上不希望红色的圆圈与黄色的轮廓重叠,我希望边缘正好是黄色轮廓开始的地方。 我已经尝试按照这里的说明,但它根本没有改变我的输出,而且我不想将它们合并到一个级联的联合中。我没有得到任何错误消息,但是当我将这些多边形添加到一个KML文件
我正在寻找一种方法来创建一组多边形(rechtangles),沿着一条线在多个多边形中创建一组多边形(rechtangles),并将其水平隔开,如图所示。 我尝试生成点并将其用作多边形的中点,但问题是,通过创建等间距的点光栅,除了180度之外,不可能以任何其他方向旋转。 例子 给出了一个多多边形形状的对象和由宽度和高度以及每个多边形之间的垂直和水平间距定义的多边形。多边形应仅放置在多多边形内,且不
我试图从顶点位置创建一组多边形,保存在X,Y格式。 下面是我的数据的一个例子——每行代表一个多边形的顶点。多边形是正方形 我正在使用,因此我的数据需要在列表中。所以我创建了一个循环来尝试从矩阵中将我的数据转换为列表格式。 我创建了一个循环,遵循我在这个网站上的其他一些问题中找到的代码。我突破了每一步,试图理解为什么我只有一个多边形作为输出,即使我有2组点。 你能帮我理解我如何调整代码写出两个多边形
我有一个二维点的列表,它是一个闭环,二维,凹形多边形。 我想生成第二个多边形,它完全在第一个多边形的内部,并且第一个多边形的每个顶点/边缘到第二个多边形的每个顶点/边缘具有恒定的距离。 基本上,第一个多边形是“外墙”,第二个多边形是“内壁”,两墙之间的距离不变。 怎么做这样的事?