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.mzph.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;角色攻击动画与父节点产…