Win10でのVS構成CGAL-5.3.1(ダウンロード、インストール、VSプロパティシート構成)+テストコード

1CGALの概要

計算幾何学アルゴリズムライブラリ(CGAL)は、効率的で信頼性の高い幾何学アルゴリズムを提供するC++アルゴリズムライブラリです。

CGALは、三角測量、ボロノイポリゴンセルコンプレックス、ポリヘドラ、曲線の配置、ネット格子生成(メッシュ生成)、ジオメトリ処理(ジオメトリ処理)、凸包アルゴリズム(凸包アルゴリズムなど、多くのデータ構造とアルゴリズムを提供します。

これらのデータ構造とアルゴリズムはすべて、点や線分などの幾何学的オブジェクトを操作し、それらに対して幾何学的テストを実行します。これらのオブジェクトと述語は、 CGALカーネルで再グループ化されます。

最後に、サポートライブラリは、幾何学的オブジェクトジェネレータと空間ソート関数、および線形計画法と二次計画法のための行列検索フレームワークとソルバーを提供します。また、GUIライブラリQt、Geomview、Boostグラフィックライブラリなどのサードパーティソフトウェアへのインターフェイスも提供します。

2ソースアーカイブからCGALをインストールします

2.1CGALダウンロード

CGAL-5.3.1.zipダウンロードアドレス:https
ここに画像の説明を挿入
://github.com/CGAL/cgal/releasesダウンロードしたファイルCGAL-5.3.1.zipを解凍して特定のパスに配置します。ここでは、次のパスに配置されます。

D:\Program Files\CGAL-5.3.1

2.2GMPおよびMPRFのインストール

プリコンパイルされたバージョンのGMPおよびMPFRは、Assets forWindows64ビットで利用できます。CGALを使用するためだけにこれらのライブラリをインストールする場合は、ファイルをCGAL-5.3.1-win64-auxiliary-libraries-gmp-mpfr.zip解凍してから、ファイル内のフォルダをunzipディレクトリauxiliaryにコピーする必要があります。CGAL-5.3.1

CGAL-5.3.1ディレクトリにはすでにフォルダが含まれているため、auxiliaryここで直接置き換えることができます。

ここに画像の説明を挿入

2.3ブーストインストールと環境変数の設定

2.3.1ブーストインストール

BoostはCGALの必須の依存関係です。Sourcesailは、Boostのバイナリバージョンを提供しています(このバージョンは、コンパイルせずに直接使用できます)。Boostインストーラーは、Boostヘッダーとプリコンパイル済みライブラリの両方をインストールします。CGAL 5.3.1がリリースされたとき、Boostの最新バージョンは1.71でした(2022年1月20日の時点で、Boostの最新バージョンは1.78.0でした)。

VSとブースト間のバージョン対応
VS ブースト
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

ここに画像の説明を挿入

最後に、ブーストdllファイルのパス(独自のパスに従う)をパス環境変数に追加します。[ユーザー変数]の[パス]をダブルクリックすると、[環境変数の編集]ダイアログボックスが表示され、[]をクリックします
ここに画像の説明を挿入
新規"、およびパスを貼り付けてdllファイルをブーストします

D:\Program Files\boost_1_78_0\lib64-msvc-14.1

ここに画像の説明を挿入

ここに画像の説明を挿入

3VSプロパティシートの構成

1)vs2017を開き、左上隅にある[ファイル]->[新規]->[新規プロジェクト]->[空のプロジェクト]をクリックします。

2)[プロパティマネージャー]->[デバッグ]| [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

おすすめ

転載: blog.csdn.net/weixin_46098577/article/details/122609078