【问题标题】:[cgal]; 3D Delaunay Triangulation[cgal]; 3D Delaunay 三角剖分
【发布时间】:2021-07-28 15:21:07
【问题描述】:

我正在尝试进行 3D Delaunay 三角剖分,我需要获取此三角剖分的外心。我是这样做的:

  typedef CGAL::Delaunay_triangulation_3<K, Tds> Triangulation;

  // Construct the triangulation in parallel
  Triangulation T(V.begin(), V.end());
  assert(T.is_valid());


  centros.open("centros.txt");

  //With this I would obtain the circumcenters of the triangulation?:
  for (Triangulation::Finite_cells_iterator it = T.finite_cells_begin(); it != T.finite_cells_end(); it++)
  {
    cout << it->circumcenter() << " / " << T.dual(it) << endl;
  }

但是,我获得的中心距离我的初始点太远了,所以我怀疑这是否是获得球体外心的正确方法。有什么帮助吗?谢谢。

【问题讨论】:

    标签: cgal


    【解决方案1】:

    请注意,外心不一定在四面体内部。如果您有一些形状良好的元素,则尤其如此。

    请参见以下 4 点的 2D Delaunay 三角剖分和相应的外接圆:

    【讨论】:

    • 对不起,但有了这个答案,我仍然不知道代码是否正确。代码不应该考虑所有这些吗?我一直在寻找获得外环中心的方法 3 周,但我没有找到或理解任何我可以正确使用的东西:(
    • circumcenter() 函数确实返回外心。
    • 你能举个例子说明如何使用这个函数吗?
    • 你用它写了一些代码,所以我不明白你的问题。
    • 看我的照片。它具有 4 个点,以及这些点的 Delaunay 三角剖分。我还画了这两个三角形的外接圆。如您所见,它们与输入点相距甚远。
    猜你喜欢
    • 2020-05-06
    • 1970-01-01
    • 2019-12-31
    • 2015-01-07
    • 2019-04-18
    • 2013-11-19
    • 2021-05-14
    • 2013-05-12
    • 2011-11-12
    相关资源
    最近更新 更多