环境配置记录:
1.安装 Homebrew
2.brew install gcc
3.brew install cmake
4.brew install eigen
5.CMakeLists配置:
编译:
cd: /Users/xuxinyu/Desktop/study/Games101/pa0
mkdir build
cd build
make …/
make
作业描述
给定一个点 P =(2,1), 将该点绕原点先逆时针旋转 45◦,再平移 (1,2), 计算出 变换后点的坐标(要求用齐次坐标进行计算)。
答案代码:
//pa0
std::cout << std::acos(-1) << std::endl;
Eigen::Vector3f v1(2.0f,1.0f,1.0f);
double theta = 45.0/180.0 * acos(-1);
Eigen::Matrix3f rotate,transform;
rotate << cos(theta), -sin(theta), 0,
sin(theta), cos(theta), 0,
0, 0, 1;
transform << 1, 0, 1,
0, 1, 2,
0, 0, 1;
std::cout <<"Before:\n" << v1 <<std::endl;
v1 = transform * rotate * v1;
std::cout <<"After:\n" << v1 <<std::endl;