Win11+VS2022+CGAL5.6配置

1. CGAL庫簡介

CGAL(Computational Geometry Algorithms Library)是一個開源的計算幾何算法庫,主要用于處理幾何問題和相關算法的實現。它提供了豐富的幾何數據結構和高效算法,覆蓋點、線、多邊形、曲面等基本幾何對象的表示與操作,以及凸包、三角剖分、網格生成、路徑規劃等經典幾何算法。該庫以C++為核心實現,同時支持Python、Java等語言擴展,能夠在Windows、Linux、macOS等多平臺運行。其應用領域廣泛,涉及計算機圖形學、地理信息系統、機器人學、計算機輔助設計等多個行業,尤其在需要高精度幾何計算和復雜算法的場景中表現突出。CGAL遵循GPL和LGPL開源協議,開發者可以自由使用和修改代碼,但由于其涉及較高階的幾何理論,學習和應用時可能需要一定的專業知識儲備。

2. 下載CGAL庫

在GitHub下載以下兩個文件https://github.com/CGAL/cgal/releases

  • 下載:CGAL-5.6-win64-auxiliary-libraries-gmp-mpfr.zip、cgal-5.6.zip

將CGAL-5.6.zip解壓到D:\CGAL-5.6 文件夾下,將GMP and MPFR libraries解壓后的auxiliary文件夾復制到D:\CGAL-5.6\CGAL-5.6\auxiliary 文件夾中。

3. 安裝Boost

Boost下載地址:https://sourceforge.net/projects/boost/files/boost-binaries/

VS2022下載這個:boost_1_82_0-msvc-14.3-64.exe

下載完安裝到目錄:D:\cgal-5.6\boost_1_82_0

4. 設置系統環境變量

變量名變量值
BOOST_INCLUDEDIRD:\cgal-5.6\boost_1_82_0
BOOST_LIBRARYDIRD:\cgal-5.6\boost_1_82_0\lib64-msvc-14.3
CGAL_DIRD:\cgal-5.6\cgal-5.6

系統環境變量PATH:增加D:\cgal-5.6\boost_1_82_0\lib64-msvc-14.3

5. 在 VS2022 中配置項目以使用 CGAL

包含目錄:在項目屬性頁(右鍵點擊項目 -> 屬性)中,選擇 “配置屬性” -> “C/C++” -> “常規” -> “附加包含目錄”,添加以下目錄:

  • D:\cgal-5.6\cgal-5.6\auxiliary\gmp\include
  • D:\cgal-5.6\CGAL-5.6\include
  • D:\cgal-5.6\boost_1_82_0

庫目錄:在 “配置屬性” -> “鏈接器” -> “常規” -> “附加庫目錄” 中,添加 CGAL 庫和 Boost 庫的目錄,例如:

  • D:\cgal-5.6\cgal-5.6\auxiliary\gmp\lib
  • D:\cgal-5.6\boost_1_82_0\lib64-msvc-14.3

附加依賴項:在 “配置屬性” -> “鏈接器” -> “輸入” -> “附加依賴項” 中,添加:

  • libgmp-10.lib
  • libmpfr-4.lib

6. 測試配置

在 VS2022 中創建一個新的 C++ 控制臺項目,編寫以下簡單的 CGAL 代碼進行測試:

#include <iostream>
#include <CGAL/Simple_cartesian.h>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);std::cout << "p = " << p << std::endl;std::cout << "q = " << q.x() << " " << q.y() << std::endl;std::cout << "sqdist(p,q) = "<< CGAL::squared_distance(p, q) << std::endl;Segment_2 s(p, q);Point_2 m(5, 9);std::cout << "m = " << m << std::endl;std::cout << "sqdist(Segment_2(p,q), m) = "<< CGAL::squared_distance(s, m) << std::endl;std::cout << "p, q, and m ";switch (CGAL::orientation(p, q, m)) {case CGAL::COLLINEAR:std::cout << "are collinear\n";break;case CGAL::LEFT_TURN:std::cout << "make a left turn\n";break;case CGAL::RIGHT_TURN:std::cout << "make a right turn\n";break;}std::cout << " midpoint(p,q) = " << CGAL::midpoint(p, q) << std::endl;return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/899109.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899109.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899109.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

手搓全自動文章多平臺發布系統:5、跨頁面接入playwright類,修改ui_components.py,整合到main.py

昨天已經要多上下文,單上下文的模塊中測試成功了,今天要想法接入。 整理完成的所有代碼如下: 結構如圖: main.py import sys from PyQt6 import QtWidgets from modules.ui_components import TableManager # 導入界面類 import asyncio# 在主函數中使用 qasync 整合事…

漲薪技術|使用Dockerfile創建鏡像

上次的推文內容中介紹了如何使用docker commit的方法來構建鏡像&#xff0c;相反推薦使用被稱為Dockerfile的定義文件和docker build命令來構建鏡像。Dockerfile使用基本的基于DSL語法的指令來構建一個Docker鏡像&#xff0c;之后使用docker build命令基于該Dockerfile中的指令…

rkipc的h265設置

資料的位置 源代碼在luckfox-pico/project/app/rkipc/rkipc/src/rv1106_ipc/video/video.c中&#xff0c;使用了rkmpi庫&#xff0c;參考資料為"doc/zh/media/Rockchip_Developer_Guide_MPI.pdf" 通道設置設置 H265的通道設置主要由rkipc_pipe_0_init完成&#xf…

成都國際數字影像產業園:打造數字影像產業新高地

成都國際數字影像產業園&#xff1a;打造數字影像產業新高地 成都國際數字影像產業園正致力于構筑數字影像產業的新高地&#xff0c;成為推動區域數字經濟發展的重要引擎。 核心定位與目標 該園區精準定位于數字影像文創產業&#xff0c;旨在打造集內容創作、技術研發、人才…

各類神經網絡學習:(三)RNN 循環神經網絡(中集),同步多對多結構的詳細解釋

上一篇下一篇RNN&#xff08;上集&#xff09;RNN&#xff08;下集&#xff09; 同步多對多結構 1&#xff09;結構詳解 ①圖解&#xff1a; ②參數含義&#xff1a; x t x_t xt? &#xff1a;表示每一個時刻的輸入&#xff1b; o t o_t ot? &#xff1a;表示每一個時刻的輸…

Perl 環境安裝指南

Perl 環境安裝指南 引言 Perl是一種廣泛使用的解釋型、動態編程語言,以其強大的文本處理能力和靈活性著稱。本文將為您詳細介紹Perl環境的安裝過程,包括系統要求、安裝步驟以及注意事項。 系統要求 在安裝Perl之前,請確保您的計算機滿足以下基本要求: 操作系統:Window…

【嵌入式學習2】C語言 - VScode環境搭建

目錄 ## 語言分類 ## c語言編譯器 ## VScode相關配置 ## 語言分類 編譯型語言&#xff1a;C&#xff0c;C解釋型語言&#xff1a;python&#xff0c;JS ## c語言編譯器 分類GCC 系列MinGWCygwinMSVC系列一套編程語言編譯器將GCC編譯器和GNU Binutils移植到Win32平臺下的產物…

qt+opengl 加載三維obj文件

1前面我們已經熟悉了opengl自定義頂點生成一個立方體&#xff0c;并且我們實現了立方體的旋轉&#xff0c;光照等功能。下面我們來用opengl來加載一個obj文件。準備我們首先準備一個簡單的obj文件&#xff08;head.obj&#xff09;。資源在本頁下載 2 在obj文件里面&#xff0c…

0326-Java 字符串方法

package com.qc.字符串;import java.util.Arrays;public class Test {public static void main(String[] args) { // String x"hello";//字符串 char[] // x x"demo";//字符串拼接 // xx2450; // xxtrue; // System.out.println(x);//hellodemo2450t…

<command-line>:0:1: error: macro names must be identifiers m

報錯&#xff1a;:0:1: error: macro names must be identifiers 排查類很久 原來是&#xff1a; add_compile_definitions(_GLIBCXX_USE_CXX11_ABI$ABI_VERSION)寫成了 add_compile_definitions(-D_GLIBCXX_USE_CXX11_ABI$ABI_VERSION)多了個 -D。

風光互補智慧路燈的燈桿設計有哪些要求?

嘿&#xff0c;朋友們&#xff01;叁仟風光互補智慧路燈的燈桿設計那可是超級重要的事兒&#xff0c;得全方位綜合考量各種因素&#xff0c;就是為了確保咱們的路燈能兼具超棒的功能性、絕對的安全性、無敵的美觀性以及超厲害的耐用性&#xff01;下面就來看看這些超贊的常見要…

06、RAG

LLM的知識僅限于它所接受到的訓練數據。如果我們希望讓它了解特定領域的專有知識&#xff0c;則可以使用下面的方式操作&#xff1a; 使用RAG使用專有數據對LLM進行微調RAG與數據微調方式結合使用 什么是RAG 簡單地說&#xff0c;RAG就是把數據發送給LLM之前從數據中查找相關…

自然語言處理:第一百零二章 如何去掉DeepSeek R1思考過程

本人項目地址大全&#xff1a;Victor94-king/NLP__ManVictor: CSDN of ManVictor 寫在前面: 筆者更新不易&#xff0c;希望走過路過點個關注和贊&#xff0c;筆芯!!! 寫在前面: 筆者更新不易&#xff0c;希望走過路過點個關注和贊&#xff0c;筆芯!!! 寫在前面: 筆者更新不易…

flink 安裝與訪問 ui

官方文檔&#xff1a;First steps | Apache Flink 版本&#xff1a;v2.0.0 下載Flink Flink運行在所有類UNIX環境中&#xff0c;即Linux&#xff0c;Mac OS X和Cygwin&#xff08;適用于Windows&#xff09;。您需要安裝Java 11。要檢查安裝的Java版本&#xff0c;請在終端中…

WPF TextBox實現鍵盤enter后實時讀取TextBox中的值

代碼 <TextBox Grid.Column"0" x:Name"textBox" Margin"10,5,0,5" TextWrapping"Wrap" Text"{Binding SendMessage,UpdateSourceTriggerPropertyChanged}" VerticalContentAlignment"Center" CaretBrush&qu…

PyTorch實現Transformer模型

首先&#xff0c;我得回顧一下Transformer的基本結構&#xff0c;確保自己沒有記錯。Transformer由編碼器和解碼器組成&#xff0c;每個編碼器層包含多頭自注意力機制和前饋網絡&#xff0c;解碼器層則還有編碼器-解碼器注意力。 接下來&#xff0c;用戶需要的是手把手的代碼解…

詳細介紹sentinel的使用,并列舉經常出的面試題以及答案

Sentinel 是一款由阿里巴巴開源的分布式系統的流量防衛系統&#xff0c;能夠實時響應并滿足高并發的流量控制需求。它提供了流量監控、流量控制、熔斷降級、系統保護等核心功能&#xff0c;可幫助開發人員實時發現系統的流量異常并快速做出相應的限流策略。 Sentinel 的使用步…

mysql-connector-java-5.1.37.jarJava連接器

mysql-connector-java-5.1.37.jar是MySQL官方提供的Java連接器&#xff0c;用于在Java應用程序中與MySQL數據庫進行通信。具體來說&#xff0c;這個JAR文件是MySQLJDBC驅動程序的一個版本&#xff0c;允許Java程序通過JDBC&#xff08;JavaDatabaseConnectivity&#xff09;接口…

Python基于Django的智能旅游推薦系統(附源碼,文檔說明)

博主介紹&#xff1a;?IT徐師兄、7年大廠程序員經歷。全網粉絲15W、csdn博客專家、掘金/華為云//InfoQ等平臺優質作者、專注于Java技術領域和畢業項目實戰? &#x1f345;文末獲取源碼聯系&#x1f345; &#x1f447;&#x1f3fb; 精彩專欄推薦訂閱&#x1f447;&#x1f3…

【博客節選】再談Unity 的 root motion

節選自 【Unity實戰筆記】第二十三 root motion變更方向攻擊 &#xff08;OnStateMove rootmotion rigidbody 使用的一些問題&#xff09; 小伙伴們應該對root motion非常困惑&#xff0c;包括那個bake into pose。 當xz bake into pose后&#xff0c;角色攻擊動畫與父節點產…