2009-12-02 82 views
1

我目前正在进入CGAL的一些二维三角测量任务,我也有一些简单的工作allready。无论如何,我真的不知道如何三角凹形,因为现在我总是得到所有点的凸包。基本上我想在mouseClick上添加点数,类似于它在Illustrator中的工作方式,以便它们顺序中的所有点都是形状的轮廓。我如何用CGAL做到这一点?一般来说,如何对凹面形状进行三角化的简单示例将会使我走上正确的轨道!谢谢!C++:CGAL二维delauny三角剖分:凹面形状

回答

0

我想你首先需要把partition的多边形变成凸块。在此之后,你可以创建每个单独的多边形的三角形像这样的东西:

for (int i = 1; i + 1 < polygon.size(); ++i) { 
    const Point_2& v0 = polygon[0]; 
    const Point_2& v1 = polygon[i]; 
    const Point_2& v2 = polygon[i + 1]; 
} 
+0

哎,我看着成,但不能真正得到它的工作。不应该有可能通过constrained_delauny三角剖分创建凹面形状吗?如果是这样,有没有人有一个可用的例子? 谢谢! – moka 2009-12-05 11:21:01

+0

对此使用delaunay三角测量看起来像是主要的矫枉过正。 Delaunay三角剖分最常用于对二维区域进行三角剖分(“网格”),以便您可以使用有限元求解各种偏微分方程。在这种情况下,你也在区域内创建了很多额外的顶点。分区功能没有工作的方式? – 2009-12-07 09:38:12