我有许多建筑物的地图(openstreetmap项目)。每个建筑物都是多边形。如何为每个建筑物轮廓制作马鞍形屋顶部件多边形?
算法应该将2D中的一个多边形转换为2D(或3D)中的多边形集。
此转换的原因是可视化 - 更好地呈现等轴测视图。
例如(阴影并不重要):
alt text http://www.freeimagehosting.net/uploads/0168cec03a.png
由于
答案 0 :(得分:4)
您正在寻找的主要部分(如90%)被称为“骨架”。看看here,在名为“其他例子”的图中。此页面来自计算机图形库的手册,因此您可以找到一般描述,并链接到(免费)代码。
答案 1 :(得分:1)
这不是你用4邻域分水岭算法得到的,加上沿垂直于最快上升方向的线标记所有边缘是局部极值吗? (当然,阴影需要以某种方式添加,但这不会给你屋顶峰值和角度的位置吗?)
答案 2 :(得分:1)
您的示例似乎假设所有屋顶坡度都相同。附加线(当从上方直接看时)是距边缘相等距离的线。这些可以通过取两个边之间的角平分线来构造。
算法如下所示: