问题标签 [cgal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2565 浏览

c++ - CGAL:找到点所属的面/三角形?

在阅读了它之后,我来到了这个:

那应该找到外接圆包含该点的面。在那之后,我必须采用这些三角形并使用一种方法来测试点是否在我认为的内部(CGAL 会这样做吗?我知道它很容易实现)。

无论如何,我怎样才能把三角形从脸上弄出来?

答案是

ETC

我不知道如何很好地使用 Triangle 类,但这至少是一个开始。

我打算做出一个实际的答案,但stackoverflow不允许我这样做。

0 投票
8 回答
713 浏览

c++ - 是否有具有这些功能的适用于 Linux 的免费 C++ IDE?

  1. 列出类中的所有方法,最好带有启用/禁用超类方法的选项。
  2. 选择变量后,“转到源”选项。

我正在尝试使用CGAL,尽管在 GCC 中使用了尽可能多的标志,但我无法从文档或编译器错误中理解很多内容,因此我下载了源代码以查看它以尝试看看我是否能找到我需要的方法。这两个选项将使事情变得容易得多。

当我将 netbeans 用于 Java 时,它有两种选择,所以也许 C++ 也有?还是我期望太高?或者也许另一个 IDE 会更好?我不知道。通常我只是将 gedit 与 make 一起使用。

0 投票
1 回答
361 浏览

c++ - 编译 cgal-python

我尝试构建 cgal-python 并出现以下错误(只是一个片段):

MacOS Lion 上标准 C 库的头文件在哪里?

0 投票
1 回答
1602 浏览

triangulation - CGAL 2D Delaunay三角剖分:如何获得所有边缘

如何在 CGAL(C++)中获取/迭代 2D delaunay 图中的所有边?

例如,在 MATLAB 中,这只是边(dt)。

0 投票
1 回答
62 浏览

c++ - 子函数中分配的对象未在父函数中更新

这是一个cgal相关的问题,但我认为这也是一个通用的C++问题,所以我在这里问它。

我正在尝试使用Alpha_shape_2该类,并将其分配给AlphaShapeCg名为GetAlphaShalCg. 问题是其中的某些函数Alpha_shape_2没有返回正确的结果。

这是我的代码,它真的很简单,但我不太明白为什么Alpha_shape_2在子例程中分配给包装器,然后访问父例程中的成员和Alpha_shape_2直接访问之间存在差异。

如果您安装了CGAL ,这是您可以编译和使用的完整代码。

更新:我尝试使用

但是由于这个错误,这段代码根本无法编译:

错误 C2513:“CGAL::Alpha_shape_2”:在“=”之前没有声明变量

0 投票
3 回答
2076 浏览

vtk - CGAL 与 VTK

CGAL 和 VTK 库有什么区别?两者都包含许多标准几何算法。任何人都可以列出一些应用程序域,其中一个优先于另一个吗?

0 投票
2 回答
3746 浏览

triangulation - CGAL:帮助从 Delaunay Triangulation 获取三角形坐标

我是 CGAL 的新手,我敢肯定我的问题很简单。

我正在尝试使用 CGAL 进行一些 Delaunay 三角测量。我在球体上有一个带有 N 3D 点的网格,我想使用这些点作为三角形的顶点对球体进行三角剖分。我只需要得到一个生成的三角形的顶点列表,如下所示:

id_triangle1 vertex_1 vertex_2 vertex_3 id_triangle2 vertex_1 vertex_2 vertex_3 ......

我这样做是为了执行三角测量:

我遇到的问题是我不知道如何得到三角测量结果。我想出了如何获得 face_iterator,但我不知道从那里做什么:

我不确定迭代三角形是否正确,如果是......三角形=面??¿,我的意思是,每个迭代器位置只有一个三角形¿?如何正确获取每个三角形的 x、y 和 z?¿

0 投票
2 回答
1012 浏览

c++ - 究竟什么是 OutputIterator 以及如何构建一个用于 CGAL Kd_tree::search 的?

我使用 CGAL 的 Kd-tree 实现以及模糊球体作为查询对象,以获取包围在r_max以一个点为中心的半径球体中的点。这是这个最小的工作示例:

我从 CGAL 示例的 Spatial_searching 文件夹(我的版本是 3.9)下的最近的_neighbor_searching.cpp 文件中获取并修改了注释“打印点”下面的行。

问题是:有没有办法让我设置一个不同的OutputIterator(而不是std::ostream_iterator)存储指针/迭代器/句柄到在排序容器中搜索产生的点,而不是将点的坐标打印到标准输出?谢谢你。

0 投票
1 回答
2266 浏览

macos - CGAL 程序(和示例)未在 Mac OS X 10.7 Lion 中编译

系统信息: Mac OS x 10.7

CGAL 安装在:CGAL INCLUDES 位于 /opt/local/include/CGAL/ CGAL LIBRARIES 位于 /opt/local/lib/cmake

CGAL INFO: singhg@~/Programming/examples/Triangulation_2$ 端口搜索 cgal cgal @3.9 (gis, science) 计算几何算法库

singhg@~/Programming/examples/Triangulation_2$ port deps cgalFull Name: cgal @3.9_0 Build Dependencies: cmake Library Dependencies: boost, mpfr, zlib, gmp

CMAKE INFO: singhg@~/Programming/examples/Triangulation_2$ 端口搜索 cmake cmake @2.8.6 (devel) 跨平台make

gccmakedep @1.0.2 (x11, devel) 使用 'gcc -M' 在 makefile 中创建依赖项

找到2个端口。

这是我的查询:

现在我下载了 CGAL_3.9 的示例并尝试使用 Xcode 运行 Triangulation_2。下面是我得到的输出。(我也尝试运行 Voronoi_diagram_2 示例,但它有同样的问题)


1)终端命令cmake -GXcode进入目录

/Users/singhg/Programming/examples/Triangulation_2

但它说:

singhg@~/Programming/examples/Triangulation_2$ cmake -GXcode
-- C 编译器标识为 GNU
-- CXX 编译器标识为 GNU
-- 检查 C 编译器是否有 -isysroot
-- 检查 C 编译器是否有 -isysroot - 是
- - 检查 C 编译器是否支持 OSX 部署目标标志
- 检查 C 编译器是否支持 OSX 部署目标标志 - 是
- 检查工作 C 编译器使用:Xcode
- 检查工作 C 编译器使用:Xcode - 工作
- 检测 C compiler ABI info
-- 检测 C 编译器 ABI info - done
-- 检查 CXX 编译器是否有 -isysroot
-- 检查 CXX 编译器是否有 -isysroot - yes
-- 检查 CXX 编译器是否支持 OSX 部署目标标志
-- 检查 CXX 编译器是否支持 OSX 部署目标标志 - 是
-- 检查工作 CXX 编译器使用:Xcode
-- 检查工作 CXX 编译器使用:Xcode -- 工作
-- 检测CXX 编译器 ABI 信息
-- 检测 CXX 编译器 ABI 信息 - 完成
-- 该程序需要 CGAL 库,不会被编译。
-- 配置完成
-- 生成完成
-- 构建文件已写入:/Users/singhg/Programming/examples/Triangulation_2

-- 这个程序需要CGAL库,不会被编译。


2)我再次尝试点击此链接http://cgal-discuss.949826.n4.nabble.com/Getting-started-with-CGAL-on-a-mac-OS-X-td3171984.html并在我的系统中CGALConfig.cmake 文件位于/opt/local/lib/cmake所以我在我的 bash 终端上尝试了这个命令:

cmake -DCGAL_DIR=/opt/local/lib/cmake

这是输出:

singhg@~/Programming/examples/Triangulation_2$ cmake -DCGAL_DIR=/opt/local/lib/cmake CMakeLists.txt:20 (include) 处的 CMake 错误:include 找不到加载文件:

CMakeLists.txt:22 (include) 处的 CMake 错误:include 找不到加载文件:

CMakeLists.txt:26 (create_single_source_cgal_program) 处的 CMake 错误:未知的 CMake 命令“create_single_source_cgal_program”。

-- 配置不完整,出现错误!


3)我再次尝试

cmake -DCGAL_DIR=/opt/local/lib/CCGAL

但这很愚蠢,因为其中没有 CGAL 目录, /opt/local/lib/但它在/opt/local/lib/cmake.

这是我从这次尝试中得到的输出:

singhg@~/Programming/examples/Triangulation_2$ cmake
-DCGAL_DIR=/opt/local/lib/CGAL
-- 这个程序需要CGAL库,不会被编译。
-- 配置完成
-- 生成完成
-- 构建文件已写入:/Users/singhg/Programming/examples/Triangulation_2



4) 我再次尝试使用 CMAKE GUI(2.8.6 版本),在“配置”中我得到:

C 编译器标识为 GNU CXX 编译器标识
为 GNU 检查 C 编译器是否有 -isysroot 检查 C
编译器是否有 -isysroot - yes 检查 C 编译器是否支持 OSX
部署目标标志 检查 C 编译器是否支持 OSX
部署目标标志 - 是 检查工作 C 编译器:
/usr/bin/gcc 检查工作 C 编译器:/usr/bin/gcc -- 工作
检测 C 编译器 ABI 信息 检测 C 编译器 ABI 信息 - 完成
检查 CXX 编译器是否有 -isysroot 检查 CXX
编译器是否有 - isysroot - 是 检查 CXX 编译器是否支持
OSX 部署目标标志 检查 CXX 编译器是否支持 OSX
部署目标标志 - 是 检查工作 CXX 编译器:
/usr/bin/c++ 检查工作 CXX 编译器:/usr/bin/c++ -- 工作
检测 CXX 编译器 ABI 信息 检测 CXX 编译器 ABI 信息 - 完成
此程序需要 CGAL 库,并且不会被编译。
配置完成

当我尝试通过将 CGAL_DIR 指定到 CGALConfig.cmake 所在的/opt/local/lib/cmake来修复错误时。它给出了这些错误:

CMakeLists.txt:20 (include) 处的 CMake 错误:include 找不到加载文件:

CMakeLists.txt:22 (include) 处的 CMake 错误:include 找不到加载文件:

CMakeLists.txt:26 (create_single_source_cgal_program) 处的 CMake 错误:未知的 CMake 命令“create_single_source_cgal_program”。

配置不完整,出现错误!

这些示例无法找到 CGAL 库的位置。如果有人可以提供帮助,请提供帮助。我找不到编译任何 CGAL 程序的方法。

谢谢你
的包

0 投票
5 回答
252 浏览

c++ - 检查哪个网格元素在原始多边形内

我有一组不重叠的多边形。这些多边形可以共享节点、边,但严格来说不能重叠。

现在,我将使用约束德劳内三角剖分 (CDT) 技术对它们进行网格划分。我可以毫无问题地获得网格。

我的问题是,在网格之后,我想知道哪个网格元素属于哪个原始多边形。我目前的方法是计算每个网格元素的质心,并检查该质心属于哪个原始多边形。但我不喜欢这种方法,因为它的计算量很大。

有没有有效的方法来做到这一点(就 Big O 运行时而言)?我的项目涉及数以万计的多边形,我不希望速度减慢。

编辑:确保网格元素中的所有顶点共享一个公共面不起作用,因为在某些情况下所有顶点可以有多个公共面,如下所示(虚线形成一个网格元素,其顶点有 2 个公共面):