闫令琪教授的图形学课作业 homework00
题目:
给定一个点 P=(2,1), 将该点绕原点先逆时针旋转 45◦,再平移 (1,2), 计算出变换后点的坐标(要求用齐次坐标进行计算)。
代码:

#include<cmath>
#include<eigen3/Eigen/Core>
#include<eigen3/Eigen/Dense>
#include<iostream>
#define _USE_MATH_DEFINES
int main(){
    Eigen::Vector3d v(2.0f,1.0f,1.0f);
    Eigen::Matrix3d rota;
    Eigen::Matrix3d tran;
    double theta = 45.0/180.0*M_PI;
    rota << cos(theta), -1.0*sin(theta), 0,
            sin(theta), cos(theta), 0, 
            0, 0, 1;
    tran << 1, 0, 1, 
            0, 1, 2, 
            0, 0, 1;
    v = tran * rota * v;
    std::cout << test << std::endl;
    std::cout <<  "After rotation and transform the point sits at " 
        << test[0] << "," << test[1] << std::endl;
    return 0;
}
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐