首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >鞍顶算法

鞍顶算法
EN

Stack Overflow用户
提问于 2010-03-28 22:23:04
回答 3查看 1K关注 0票数 9

我有许多建筑物的地图(openstreetmap项目)。每座建筑都是一个多边形。如何为每个建筑轮廓创建鞍形屋顶零件多边形?

算法应将2D中的一个多边形转换为2D (或3D)中的一组多边形。

这种转换的原因是可视化-更好地渲染等轴测视图。

例如(着色并不重要):

alt text http://www.freeimagehosting.net/uploads/0168cec03a.png

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-03-29 03:18:55

你正在寻找的东西的主要部分(大约90%)被称为“骨架”。看一下here,看一下这个叫做"Other examples“的图。这个页面来自一个计算机图形库的手册,所以你会在那里找到一个一般的描述,以及到(免费)代码的链接。

票数 4
EN

Stack Overflow用户

发布于 2010-03-28 23:19:24

这不就是你用4邻域分水岭算法得到的结果,加上沿着垂直于最快上升方向的直线标记所有局部极值的边吗?(当然,需要以某种方式添加阴影,但这不是可以为您提供屋顶顶点和角度的位置吗?)

票数 1
EN

Stack Overflow用户

发布于 2010-03-29 03:25:27

您的示例似乎假设所有屋顶坡度都是相同的。附加线(当直接从上面看到时)就是与边缘距离相等的线。它们可以通过取两条边之间的角度平分线来构建。

算法将如下所示:

  • 从任何两条相邻的边开始。
  • 沿着它们的角度平分线添加一条线。
  • 采用下一条相邻边。
  • 沿着两条新线相交的角度添加一条线,标记新顶点,然后裁剪这些线。<

>H111从此顶点开始,沿着两条线与下一条边相交的两条外边的角平分线添加一条线,依此类推。

  • 注意正确裁剪新线并管理新顶点。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2533214

复制
相关文章

相似问题

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