admin管理员组文章数量:1646237
文章目录
- 1 CGAL概述
- 2 从源文档(Source Archive)中安装CGAL
- 2.1 CGAL下载
- 2.2 GMP和MPRF安装
- 2.3 boost安装与环境变量设置
- 2.3.1 boost安装
- 2.3.2 环境变量设置
- 3 VS属性表配置
- 4 测试代码
- 5 相关文件下载
1 CGAL概述
计算几何算法库(Computational Geometry Algorithms Library,CGAL)是一个C++算法库,提供了高效和可靠的几何算法。
CGAL提供了许多数据结构和算法,如三角剖分(triangulations)、Voronoi图(Voronoi diagrams)、多边形(Polygons)、单元复合体和多面体(Cell Complexes and Polyhedra)、曲线排列(arrangements of curves)、网格生成(mesh generation)、几何处理(geometry processing)、凸包算法(convex hull algorithms)等等。
所有这些数据结构和算法都对点和线段等几何对象进行操作,并对它们进行几何测试。这些对象和谓词在CGAL内核(CGAL Kernels)中重新组合。
最后,支持库(Support Library)提供几何对象生成器和空间排序功能,以及矩阵搜索框架和线性和二次规划的解算器。它还提供与第三方软件(如GUI库Qt、Geomview和Boost图形库)的接口。
2 从源文档(Source Archive)中安装CGAL
2.1 CGAL下载
CGAL-5.3.1.zip下载地址:https://github/CGAL/cgal/releases
将下载的CGAL-5.3.1.zip
解压缩,并放在某一路径下,这里放在以下路径
D:\Program Files\CGAL-5.3.1
2.2 GMP和MPRF安装
Assets中提供了GMP和MPFR的预编译版本,适用于Windows 64位。如果我们安装这些库只是为了使用CGAL,那么应将CGAL-5.3.1-win64-auxiliary-libraries-gmp-mpfr.zip
文件解压,然后将其中的auxiliary
文件夹加拷贝到CGAL-5.3.1
的解压目录下。
由于CGAL-5.3.1
目录下已经包含了auxiliary
文件夹,这里直接替换即可。
2.3 boost安装与环境变量设置
2.3.1 boost安装
Boost是CGAL的强制依赖项。SourceForge上提供了Boost的二进制版本(此版本无须编译,可直接使用)。Boost安装程序会同时安装Boost头文件和预编译库。CGAL 5.3.1发布时,Boost的最新版本是1.71(截止到2022年1月20日,Boost的最新版本为1.78.0)。
VS | boost |
---|---|
vs2015 | boost-msvc-14.0 |
vs2017 | boost-msvc-14.1 |
vs2019 | boost-msvc-14.2 |
以VS2017安装Boost1.78.0为例,进行boost的安装,步骤如下:
1)下载并运行boost_1_78_0-msvc-14.1-64.exe
文件,选择安装目录
2)点击Next>
,进行安装…
3)单击Finish
,完成安装。
2.3.2 环境变量设置
打开控制面板,搜索“高级”,选择“系统”下的“查看高级系统设置”
选择“环境变量”
如果想要对该用户设置,选择在用户变量中新建;如果要对所有用户都有效,选择系统变量。
两种选择,操作相同。下面以“用户变量”为例:
在用户变量下选择“新建”,弹出“新建用户变量”对话框
依次设置变量名和变量值
BOOST_LIBRARYDIR = D:\Program Files\libboost_1_78_0\lib64-msvc-14.1
BOOST_INCLUDEDIR = D:\Program Files\libboost_1_78_0
最后,将boost dll文件的路径(以你自己的路径为准)添加到path环境变量中:双击“用户变量”中的“Path”,弹出“编辑环境变量对话框”
单击“新建”,粘贴boost dll文件的路径
D:\Program Files\boost_1_78_0\lib64-msvc-14.1
3 VS属性表配置
1)打开vs2017点击左上角“文件->新建->新建项目->空项目”
2)选择“属性管理器->Debug | x64”,右键“添加新项目属性表”(一劳永逸,以后创建新项目时直接调用即可,不必重新配置)
3)双击新建好的属性表,添加包含目录
将以下路径添加到“通用属性->VC++ 目录->包含目录”中
D:\Program Files\CGAL-5.3.1\include
D:\Program Files\CGAL-5.3.1\auxiliary\gmp\include
D:\Program Files\boost_1_78_0
4)添加库目录
将以下路径添加到“通用属性->VC++ 目录->库目录”中
D:\Program Files\CGAL-5.3.1\auxiliary\gmp\lib
D:\Program Files\boost_1_78_0\libs
5)添加附加依赖项(D:\Program Files\CGAL-5.3.1\auxiliary\gmp\lib下的lib文件)
将以下文件名粘贴到“通用属性->链接器->输入>附加依赖项”中
libgmp-10.lib
libmpfr-4.lib
4 测试代码
代码:
#include <iostream>
#include <CGAL/Simple_cartesian.h> //笛卡尔坐标相关头文件
using namespace std;
typedef CGAL::Simple_cartesian<double> Kernel;
typedef Kernel::Point_2 Point_2;
typedef Kernel::Segment_2 Segment_2;
int main()
{
//定义两个二维点
Point_2 p(1, 1), q(10, 10);
cout << "p = " << p << endl;
cout << "q = " << q.x() << " " << q.y() << endl;
//两点间的平方距离
double sqDist_pq;
sqDist_pq = CGAL::squared_distance(p, q);
cout << "->两点间的平方距离:"<< CGAL::squared_distance(p, q) << endl;
//两点的中点
cout << "->两点间的中点:" << CGAL::midpoint(p, q) << endl;
//两点确定一条直线
Segment_2 s(p, q);
Point_2 m(5, 9);
cout << "m = " << m << endl;
//点到直线的距离
double sqDist_sm;
sqDist_sm = CGAL::squared_distance(s, m);
cout << "->点到直线的距离" << sqDist_sm << endl;
//判断三点的关系
cout << "p, q, 和 m 三点的关系为:";
switch (CGAL::orientation(p, q, m))
{
case CGAL::COLLINEAR:
cout << "三点共线\n";
break;
case CGAL::LEFT_TURN:
cout << "三点构成左转\n";
break;
case CGAL::RIGHT_TURN:
cout << "三点构成右转\n";
break;
}
return 0;
}
输出结果:
p = 1 1
q = 10 10
->两点间的平方距离:162
->两点间的中点:5.5 5.5
m = 5 9
->点到直线的距离8
->p, q, 和 m 三点的关系为:三点构成左转
5 相关文件下载
点击此处按需自取–提取码:pdx6
版权声明:本文标题:Win10下VS配置CGAL-5.3.1(下载、安装、VS属性表配置)+ 测试代码 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1729421285a1200585.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论