因为 qhull
是一个复杂的命令行工具箱,用户可以通过各种命令选项去调用适当的程序。比如,要对点集进行
Delaunay 网格化,可以直接使用 "qdelaunay" 命令来实现,也可以通过 "qhull d Qbb"
命令来实现。
在 qhull 工具箱中,要构建点集的凸包,可以调用 "qconvex" 命令来实现,而且 "qhull"
如果在未设定命令选项时,默认调用的程序就是 qconvex。对于我要解决的问题,即使用 qhull
构造三维点集的凸包而言,基本命令格式如下:
$ qconvex [选项] < input_file
> output_file
qconvex 程序的行为由一组功能选项来控制,常用的如下:
Qt -
三角化输出,也就是输出由三角面片组合而成的凸包数据
QJ - 对于近似于平面的数据进行一些简化,譬如对于三维点集,
- 可以保证不会出现 4 点共面的情况
Tv - 从结构、凸性以及数据包含等方面对凸包构建结果进行校验
- - 输出 qconvex 所有选项信息
对于凸包构建结果的输出,qconvex
提供了一组输出控制选项,常用的如下:
s - 输出凸包构建结果概要 (default)
i - 输出凸包上每个面片的顶点
n - 输出凸包上每个面的方程系数
p - 输出要进行凸包求解的点集的坐标
Fx - 输出极点(凸包顶点)
<