提示:文章内容仅供参考,不保证正确
GAMES101—PA0
齐次坐标的应用,图形学入门的开始
一、齐次坐标系(Homogeneous Coordinates)是什么?
将线性变换+平移统一的一种坐标关系。
可以用一个变换矩阵表示一个Points的任意运动。
线性变换
-
缩放变换
-
镜像变换
-
错切变换
-
旋转
平移
齐次坐标系的各变换
二、作业描述
给定一个点 P=(2,1), 将该点绕原点先逆时针旋转 45◦,再平移 (1,2), 计算出
变换后点的坐标(要求用齐次坐标进行计算)。
#include<cmath>
#include<eigen3/Eigen/Core>
#include<eigen3/Eigen/Dense>
#include<iostream>
const double PI = 1.0/4.0 * std::acos(-1);
int main(){
// P(1, 2) Rotation counterclockwise 45 + T(1 , 2)
std::cout << "P(2,1) Transformation" << std::endl;
Eigen::Vector3f P(2.0f, 1.0f, 1.0f);
Eigen::Matrix3f R, T;
R << cos(PI), -sin(PI), 0.0, sin(PI), cos(PI), 0.0, 0.0, 0.0, 1.0;
T << 1.0, 0.0, 1.0, 0.0, 1.0, 2.0, 0.0, 0.0, 1.0;
std::cout << P << '\n' << R << '\n' << T << std::endl;
// Transformation
std::cout << T * R * P << std::endl;
return 0;
}
总结
简单记录一下GAMES101的作业情况,有问题直接留言交流。