首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >规则栅格地形网熔丝详细道路网

规则栅格地形网熔丝详细道路网
EN

Computer Graphics用户
提问于 2017-10-15 14:43:51
回答 2查看 574关注 0票数 3

我对C++有经验,知道更多与嵌入式设备相关的东西,但对计算机图形学及其算法一无所知。

我想得到一个道路网格(基于样条)无缝混合成一个地形网格,这是基于一个规则的网格,如下图所示。这是如何实现的?

只是看了一下CGAL文档,我甚至不知道我面临的是哪个问题,以及该研究哪个包。也许是Delauney的精致?但是我只看到了一个2D的CGAL包。我想要生成一个三维网格。

道路网应该是不修改的,地形网可以改变成一个无缝网。

你能给我介绍一下这方面所需的算法吗?

向麦克斯问好

EN

回答 2

Computer Graphics用户

发布于 2017-10-17 00:35:59

我认为解决这个问题的最好方法是一次在一个三角形上工作的算法。

你会看到每一个地形三角形单独的道路相交和处理它。

单独观察一个三角形,就必须将该三角形分割成一个或多个网格,以使其与道路成等高线。

以下是一些需要在下图中考虑的案例。我打赌会有一些三角形切片算法适合这一点,我也不确定有什么名字,但我提议的主要贡献是,你要单独处理三角形。

当在x/y平面上切割三角形以为道路制造一个洞时,你也会希望地形得到道路的z值(高度),对于那些接触道路的顶点。这将使地形上升,以满足道路。

在这一点上,你将有一个地形网格,它符合道路,但它将是丑陋的。

而不是有一个漂亮的,甚至看上去在合理的山坡上的道路上,你会有一些三角形非常尖锐的道路上,而其他的有一个非常平的斜坡。

你现在需要做的是做一些“放松”算法来解决这个问题。

基本上,如果有些东西太陡,因为没有足够的三角形来进行高度调整,你需要使整个三角形的高度更接近道路,并将一些高度调整流到邻近的三角形上。

如果有些东西不够陡峭,因为有很多三角形来调整高度,你可能会想把三角形分解成更接近道路的多边形,让更小的区域来处理高程的变化。

在第二步中,当在两个三角形之间的边缘添加一个顶点时,还需要调整共享边的三角形,以防止在地形中出现裂缝。

细节有点模糊,但希望这两步方法能帮助您解决问题。

  1. 使地形网格适应道路,而不关心它的外观。
  2. 细化地形网格,使之看起来更符合道路上一个更有机的人做的道路。
票数 2
EN

Computer Graphics用户

发布于 2018-06-27 07:43:02

对于三维地形,你可以使用投影到XY平面上的点进行三角测量.这很容易在CGAL中使用投影_特征_xy_3。类实现,就像在这个地形三角剖分示例中一样。

对于道路三角测量的融合,您可以使用约束Delaunay三角剖分。你约束道路网格和插入规则网格点的地形网格,以构建完整的三角剖分。有关如何使用CGAL的约束Delaunay三角剖分的示例,请参阅此代码

这将使您能够解决问题,而不深入到三角形的细节。如果结果不够好,您总是可以通过在有问题的三角形中插入额外的点来细化网格。

票数 0
EN
页面原文内容由Computer Graphics提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://computergraphics.stackexchange.com/questions/5731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档