![](https://img.haomeiwen.com/i20020816/0e20928e35c5b823.png)
一般的问题和解决方案除了地形之外,还有许多其他应用,但是对于景观设计师来说,最方便的应用可能是在地形创建中。在某些情况下,它还可用于生成建筑物的通用屋顶轮廓。
即基本曲线的递归偏移以创建地形,则可能尝试了向内进行类似的处理。有时向外部偏移,但很少引起拓扑结构变化的问题,数学术语描述形状的形状,但向内偏移通常是非常不同的事情。例如,如果要偏移地形的轮廓线(形状有些不规则),则最终可能会到达地形“分裂”为单独的轮廓线或单独的“峰”的位置。如果您在蚱hopper中有一个自动化的过程,它就会向内走,则可能会造成问题。
幸运的是,有一个相当简单的解决方案,用于通过所谓的“中间轴”描述形状的拓扑,然后依次使用该描述从任意闭合形状或闭合形状集创建地形。Daniel Piker 在“ 空间对称语法”博客上解释了使用Voronoi单元查找“中间轴”的脚本的逻辑,但此处的定义已被重新设计以与最新版本的蚱of一起使用,并在最后进行了扩展。此定义旨在与任意数量的输入曲线配合使用,但是您必须注意数据结构,尤其是贯穿其中的“嫁接”元素,才能使其正常工作。
第一步-使用Voronoi细胞描述形状类型
![](https://img.haomeiwen.com/i20020816/24bb94ed67aff8dc.png)
脚本从此处的三个任意曲线开始,在本例中为飞旋镖。这些曲线被分为规则数量的点,这些划分点又用于创建Voronoi图。如果您查看该图,则单元格之间的边界与可被描述为地形的“脊”和“臀部”的元素紧密对应。您将不得不增加曲线分割点的数量,以使这条线越来越精确,同时又不至于使计算机不知所措。最后,我们使用“修剪区域”命令修剪Voronoi单元,然后仅继续处理区域曲线内的几何图形。
第二步–从Voronoi细胞中提取中轴和“静脉”
![](https://img.haomeiwen.com/i20020816/0bc5cfca9ca88d4f.png)
一旦我们的形状中有细胞,我们就可以爆炸细胞。现在,我们将其余的几何分为两类。接触边缘曲线的几何图形始终垂直于地形的坡度,因此我们将这些“静脉”(像树叶上的静脉)称为前进。不接触边缘的片段构成了我们形状的拓扑骨架。为了将它们分开,我们将使用“碰撞一”组件为形状返回一个true / False值,以查看它们是否接触到外部边缘曲线。然后调度这两组几何。
还要注意我对数据结构所做的事情。我使用“修剪树”组件删除了除最后一层之外的所有数据结构级别。这是因为我不在乎这些行以前与之关联的单元格,但是我仍然在乎每行与之关联的三个起始行中的哪一个。如果我一直压扁,它将无法正常工作。
第三步–垂直移动拓扑骨架以定义地形
![](https://img.haomeiwen.com/i20020816/1c9ff94aedcfea1b.png)
在接下来的步骤中,我将使用生成的几何图形来开发地形和网格。我可以使用中间轴来定义该网格,也可以使用静脉。在上图中,我使用了静脉。在下图中,我使用中间轴。
![](https://img.haomeiwen.com/i20020816/a75d0ebfabd0df47.png)
两者的一般原理是相同的。提取每个几何图形的端点,然后根据它们与边缘曲线的距离垂直移动。移动量可以根据所需的总斜率进行缩放。一旦移动了这些点,就可以重画线。
第四步–创建网格线和轮廓线
![](https://img.haomeiwen.com/i20020816/242ee0411dfa9ba7.png)
在这里,我使用每个“静脉”的端点定义一个网格,从中可以得出轮廓线。
第五步–静脉放样
![](https://img.haomeiwen.com/i20020816/219607cff3a90559.png)
您也可以使用静脉绘制一些几何图形,但这是完全可选的步骤。
变化
此定义 应*适用于任何大小和形式的任何闭合形状。您只需要调整初始曲线分割的数量即可获得或多或少精确的结果。您还可以调整高度比例因子以获得各种地形坡度。下面仅是基于复杂的曲线形式的两种可能性的示例,以及基于较简单的三角形形状的一种可能性的示例。请注意,在两种情况下都可以正常工作!
![](https://img.haomeiwen.com/i20020816/ac436e5db140f534.png)
https://www.up-4ever.org/z8g47adgp4rz
下载链接地址:
https://www.up-4ever.org/z8g47adgp4rzwww.up-4ever.org
网友评论