GAMES101 课程环境搭建(Win10+Clion)及作业0说明

网友投稿 1350 2022-05-29

0. 参考资料:

Windows10下配置VSCode、Mingw、Cmake、Eigen、OpenCV环境(为GAMES101作业构筑Win环境)

games101【作业0】环境配置——windows环境配置

1. 基础软件依赖

关于gcc与cmake的安装参考之前博文

https://bbs.huaweicloud.com/blogs/336631

https://bbs.huaweicloud.com/blogs/344843

注意:

cmake安装的时候选择Add CMake to the system PATH for all users,加入系统环境变量的路径,保证可以在命令行使用

命令行输入cmake --help,验证是否安装成功

mingw要选择posix版本的Mingw下载,否则编译opencv时会出错

mingw安装时解压到任意地方,并且把bin的路径添加到系统环境变量PATH中,完成后在命令行输入g++ -v,验证是否安装成功

2. 第三方库的编译和安装

2.1 Eigen(线性代数运算库)

下载地址:Eigen

安装说明:

注意版本要与opencv之间关联,这里选择3.4.0 版本安装

在eigen的根目录下新建一个build目录

打开cmake软件,source目录设置成eigen的根目录,build目录设置成刚刚新建的目录,然后点击configure,出来的makefile的格式选择mingw,等待config结束后点击generate。

管理员权限运行cmd,进入build目录,运行mingw32-make,之后运行mingw32-make install

注:此时就可以删除解压出来的eigen目录(因为上面安装的已经安装到了c盘Program File x86里了,有时候build的时候会找错路径)

2.2 OpenCV库编译

下载地址opencv-win

解压到任意目录,opencv/source/目录下新建一个build目录

打开cmake软件,source目录设置成opencv/source/目录,build目录设置成刚刚新建的build目录,然后点击configure,出来的makefile的格式选择mingw,等待config结束

找到OPENCV_ENABLE_ALLOCATOR_STATS,不勾选后面的对勾(不这样会编译错误), 再次点击configure,之后点击generate

以管理员权限运行cmd,进入build目录,运行mingw32-make(这个很慢),之后运行mingw32-make install

设置opencv的环境变量,管理员权限运行cmd, 执行 setx -m OpenCV_DIR path_to_build/lib/(本质就是增加环境变量OPENCV_DIR),然后把path_to_build/bin添加到path系统环境变量里

以上用到工具及软件的版本信息如下:

gcc: x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z

cmake: cmake-3.23.0-windows-x86_64.msi

eigen: eigen-3.4.0.zip

opencv: opencv-4.5.5-vc14_vc15.exe

3. CMakeLists文件适配

由于上文已经在环境变量中设置了EIGEN3_INCLUDE_DIR变量。因此一下配置文件中要增加环境变量前缀$ENV{}

cmake_minimum_required (VERSION 2.8.11) project (Transformation) find_package(Eigen3 REQUIRED) include_directories($ENV{EIGEN3_INCLUDE_DIR}) add_executable (Transformation main.cpp)

4. 关于作业0的说明

GAMES101 课程环境搭建(Win10+Clion)及作业0说明

本次作业要点:

环境搭建与使用

Eigen线代库的使用说明

Eigen的入门材料:

https://blog.csdn.net/hongge_smile/article/details/107296658

作业情况说明:

目标实现向量旋转

/* * Task 0 * 给定一个点 P=(2,1), 将该点绕原点先逆时针旋转 45◦,再平移 (1,2), 计算出 * 变换后点的坐标(要求用齐次坐标进行计算)。 */ // TODO: Define point P Eigen::Vector3d P(2.0f, 1.0f, 1.0f); // TODO: Define rotation matrix and transposion matrix Eigen::Matrix3d R; Eigen::Matrix3d T; double theta = 45.0 / 180.0 * M_PI; R << cos(theta), -1.0 * sin(theta), 0, sin(theta), sin(theta), 0, 0, 0, 1; T << 1, 0, 1, 0, 1, 2, 0, 0, 1; // TODO: T * R * P Eigen::Vector3d Res; Res = T* R * P; std::cout << Res << std::endl; return 0; //result: 1.70711 4.12132 1

VR视频 图像处理 渲染 游戏开发

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Hive快速入门系列(9) | Hive表中数据的加载与导出
下一篇:2017年全国大学生电子设计竞赛滚球控制系统设计
相关文章