本文最后更新于:2022年10月18日 下午
环境配置 使用 VS 的 CMake 支持,在 VS2019 打开老师提供的作业项目。这时缺少Eigen3
库,无法编译运行。
安装 vcpkg 官方教程优先参考https://vcpkg.io/en/getting-started.html
安装过程很简单,在你想安装的位置执行这两行命令:
git clone https://github.com/Microsoft/vcpkg.git .\vcpkg\bootstrap-vcpkg.bat
安装完成后将vcpkg
文件夹添加到Path
环境变量,这样就可以在任意位置调用了。
然后执行vcpkg integrate install
,让 vcpkg 可以和 MSBuild / Visual Studio 联动。执行之后显示:
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
库只需要一行命令:
vcpkg.exe install Eigen3:x64-windows
这里安装的是 64 位 Windows 版,可以根据自己的需要来选择。
配置 CMake 首先需要修改CMakeLists.txt
:
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 缓存。
将头文件引入改为:
如果没出问题的话,经过如此配置已经可以编译运行实例程序了。
作业
作业描述 给定一个点 P=(2,1), 将该点绕原点先逆时针旋转 45◦,再平移 (1,2), 计算出 变换后点的坐标(要求用齐次坐标进行计算)。
计算如下:
点的齐次坐标表示为:
按顺序乘旋转矩阵和平移矩阵得到结果。
代码如下:
#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 ; }