记矩阵基础概念

转自up:Naruto_Qcsdn:三维空间几何变换矩阵

先贴个站里分享的基础概念。

learn form 肥猫同学VFX b站:会用transform就会用矩阵

移动 旋转 缩放

1.transofrm ——输出变化矩阵
记矩阵基础概念_第1张图片

可以移动transform查看变化去理解

位移

记矩阵基础概念_第2张图片

缩放

记矩阵基础概念_第3张图片

旋转

记矩阵基础概念_第4张图片

由此——3*3矩阵无法实现 ,位移

vex

4@m=ident(); //ch4('m')//单位矩阵
scale(@m,ch('sacle'));//缩放 对空间缩放(物体在空间内——同步缩放)

float angle=radians(chf('angle'));
vector axis=chv('axis');
rotate(@m,angle,axis);// 旋转

translate(@m,chv('tran'));//位移  or这里用3*3矩阵  最后@P+位移 也可以

@P*=m;

lookat函数

vector p1=getbbox_center(0);
vector p2=point(1,'P',0);
martix3 m=lookat(p2,p1);
@P*=m;

dihedral 函数 让a转向b

绕指定轴转

vector a={0,1,0};
vector b=normlize(b向量);
martix3 m =dihedral(a,b);

float angle=radians(chf('angle'));
rotate(@m,angle,b);// 旋转
@P*=m;

记矩阵基础概念_第5张图片

读取位移信息

记矩阵基础概念_第6张图片
copy给物体
记矩阵基础概念_第7张图片
读取运动 这里等于复制了3个transform

maketransform

记矩阵基础概念_第8张图片
z +y+中心 定义4*4

vector zaxis=z;
vector yaxis=y;
vector translate=getbbox_center(1);
matrix m=maketransform(zaxis,yaxis,translate);
@P*=m;

3*3-------四元数

3@m=ident();
p@q=quaternion(3@m);

逆矩阵 invert
转置矩阵 transpose (eg:(m,n)矩阵A的行和列 给出的转置矩阵At 大小为(n,m))

你可能感兴趣的:(矩阵,线性代数)