CGAL的安装与环境配置

系统环境:Ubuntu-14.04


1.安装g++

$ sudo apt-get install g++


2. 安装boost

下载boost源文件【官网

$tar -zxvf boost_1_58_0.tar.gz

$ cd boost_58_0

$ ./boostrap.sh

$ ./b2 install


3. 安装cmake

下载cmake源文件【官网

$tar -zxvf cmake-3.3.2.tar.gz

$ cd cmake-3.3.2

$ ./bootstrap

$ make

$ make install


4.安装相关依赖库

$sudo apt-get install libgmp-dev libmpfr-dev

$sudo apt-get install libgmp-dev


5.安装CGAL

下载CGAL源文件【官网

$ tar -zxvf CGAL_4.6.3.tar.gz

$ cd CGAL_4.6.3

$ cmake .

$ make

$ sudo make install


:如果报错OSError: libCGAL.so.11: cannot open shared object file: No such file or directory,解决方法:添加libCGAL.so路径,如:export LD_LIBRARY_PATH=/usr/local/lib; 或者在/etc/profiles文件中添加。


eg.

#include <iostream>
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Polygon_2.h>
#include <CGAL/Polygon_with_holes_2.h>
#include <CGAL/Boolean_set_operations_2.h>
#include <CGAL/Polygon_2_algorithms.h>


typedef CGAL::Simple_cartesian<double> K;
typedef K::Point_2 Point;
typedef CGAL::Polygon_2<K> Polygon_2;
typedef CGAL::Polygon_with_holes_2<K> Polygon_with_holes_2;
using std::cout; using std::endl;


int main(){
  Point points[] = { Point(0,0), Point(2,0), Point(2,1), Point(0,1)};
  // Point points2[] = { Point(0.5,0.5), Point(1.5,0.5), Point(1.5,1.5), Point(0.5,1.5)};
  Point points2[] = { Point(0,0), Point(3,0), Point(3,2), Point(1,0.5)};
  Polygon_2 poly1(points, points+4);
  Polygon_2 poly2(points2, points2+4);
  //CGAL::General_polygon_with_holes_2<K> poly3;
  std::list<Polygon_with_holes_2> polyI;

  double p1_area = poly1.area();

  double p2_area = poly2.area();

  CGAL::intersection(poly1, poly2, std::back_inserter(polyI));

  double totalArea = 0;
  typedef std::list<Polygon_with_holes_2>::iterator LIT;
  for(LIT lit = polyI.begin(); lit!=polyI.end(); lit++){
    totalArea+=lit->outer_boundary().area();
  }
  cout << "poly1Area::" << p1_area <<endl
       << "poly2Area::" << p2_area <<endl
       << "IntersetArea::" << totalArea << endl
       << "OverlabArea::" << totalArea*1.0/(p1_area+p2_area-totalArea) << endl;

}

编译命令:g++ -o poly.o polyOverlab2.cpp -L/usr/local/lib/ -lCGAL -lCGAL_Core -lgmp -lmpfr -lboost_system -lboost_filesystem -lboost_regex -lboost_thread

测试:./poly



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值