一.作业描述
二.思路分析
整理了课程相关的一点内容。
现在开始分析这道题目。
P在齐次坐标系下的坐标为ori(2,1,1)。
根据旋转矩阵
代入θ=-45/180*PI 得旋转矩阵。
由题意得平移矩阵T为 1 0 1;0 1 2;0 0 1;
先旋转,再平移:ori=T *R *ori,得到计算结果。
三.代码实现
#include<cmath>
#include<eigen3/Eigen/Core>
#include<eigen3/Eigen/Dense>
#include<iostream>
int main(){
Eigen::Matrix3f rotate,transform;
Eigen::Vector3f ori(2.0f,1.0f,1.0f);
float r=-45.0/180.0*M_PI;
rotate<<cos(r),sin(r),0,-1.0f*sin(r),cos(r),0,0,0,1;
transform<<1,0,1,
0,1,2,
0,0,1;
ori=rotate*ori;
std::cout<<r<<std::endl;
std::cout<<"rotate:"<<std::endl;
std::cout<<rotate<<std::endl;
std::cout<<"after rotate"<<std::endl;
std::cout<<ori<<std::endl;
ori=transform*ori;
std::cout<<"after transform"<<std::endl;
std::cout<<ori<<std::endl;
return 0;
}