【GAMES101】作业0与vcpkg+CMake环境配置

本文最后更新于:2022年10月18日 下午

环境配置

使用 VS 的 CMake 支持,在 VS2019 打开老师提供的作业项目。这时缺少Eigen3库,无法编译运行。

安装 vcpkg

官方教程优先参考https://vcpkg.io/en/getting-started.html

安装过程很简单,在你想安装的位置执行这两行命令:

1
2
git clone https://github.com/Microsoft/vcpkg.git
.\vcpkg\bootstrap-vcpkg.bat

安装完成后将vcpkg文件夹添加到Path环境变量,这样就可以在任意位置调用了。

然后执行vcpkg integrate install,让 vcpkg 可以和 MSBuild / Visual Studio 联动。执行之后显示:

1
2
3
4
5
6
7
Applied user-wide integration for this vcpkg root.

All MSBuild C++ projects can now #include any installed libraries.
Linking will be handled automatically.
Installing new libraries will make them instantly available.

CMake projects should use: "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake"

记录下最后一句中的路径,配置 CMake 时需要。

安装依赖

安装语法:vcpkg install [packages to install]

要安装Eigen3库只需要一行命令:

1
vcpkg.exe install Eigen3:x64-windows

这里安装的是 64 位 Windows 版,可以根据自己的需要来选择。

配置 CMake

首先需要修改CMakeLists.txt

1
2
3
4
5
6
7
8
9
10
cmake_minimum_required (VERSION 2.8.11)
project (Transformation)

set(CMAKE_TOOLCHAIN_FILE "C:/vcpkg/scripts/buildsystems/vcpkg.cmake")

find_package(Eigen3 CONFIG REQUIRED)

add_executable (Transformation main.cpp)

target_link_libraries(Transformation Eigen3::Eigen)

C:/vcpkg/scripts/buildsystems/vcpkg.cmake改为安装的时候记住的路径。

更改 CMake 之后让更新一下 VS 的 CMake 缓存。

将头文件引入改为:

1
#include<Eigen/Core>

如果没出问题的话,经过如此配置已经可以编译运行实例程序了。

作业

作业描述 给定一个点 P=(2,1), 将该点绕原点先逆时针旋转 45◦,再平移 (1,2), 计算出 变换后点的坐标(要求用齐次坐标进行计算)。

计算如下:

的齐次坐标表示为:

按顺序乘旋转矩阵和平移矩阵得到结果。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<cmath>
#include<Eigen/Core>
#include<iostream>

int main()
{
const float deg = 45.0 / 180.0 * acos(-1);
Eigen::Vector3f P = {2.0, 1.0, 1.0};
Eigen::Matrix3f R;
R << cosf(deg), -sinf(deg), 0, sinf(deg), cosf(deg), 0, 0, 0, 1;
Eigen::Matrix3f T;
T << 1, 0, 1, 0, 1, 2, 0, 0, 1;
P = T * R * P;
std::cout << '(' << P[0] << ',' << P[1] << ')' << std::endl;
return 0;
}

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!