Math 将矩阵转换为组件块
给定仿射2D变换矩阵,例如:Math 将矩阵转换为组件块,math,matrix,transform,inverse,Math,Matrix,Transform,Inverse,给定仿射2D变换矩阵,例如: [a b tx] [c d ty] [0 0 1 ] 对于围绕原点的顺时针旋转,a通过cos(θ)进行变换,b通过sin(θ) 对于scaleFactor sx的scaleX,a通过sx 对于平行于x轴的剪力,x'=x+kyb通过k 在我的示例中,a通过旋转和scale-x变换两次,b通过旋转和剪切变换两次 旋转不再只是arcin(b) ScaleX不再只是1/a ShearX不再只是x-ky 如何从该矩阵中获取rotation、shearX和
[a b tx]
[c d ty]
[0 0 1 ]
- 对于围绕原点的顺时针旋转,
通过a
进行变换,cos(θ)
通过b
sin(θ)
- 对于scaleFactor sx的scaleX,
通过a
sx
- 对于平行于x轴的剪力,
x'=x+ky
通过b
k
在我的示例中,
a
通过旋转和scale-x变换两次,b
通过旋转和剪切变换两次
旋转不再只是arcin(b)
ScaleX不再只是1/a
ShearX不再只是x-ky
如何从该矩阵中获取
rotation
、shearX
和scaleX
的值 因此旋转矩阵(完整)将为(我省略了钻孔部分)
而比例和剪切矩阵(同样,忽略钻孔部分)
现在应用第一个旋转(R),然后缩放和剪切(S)将只乘以矩阵,从而得到结果矩阵
S times R
a=s cos(θ) - k sin(θ) b=s sin(θ)+k cos(θ)
c=-sin(theta) d=cos(theta)
如果你想从中得到θ,s和k,你可以确定θ=arcin(-c)。你知道sin(θ)和cos(θ),所以你可以用两个未知数解两个线性方程(a=s cos(θ)-k sin(θ)b=s sin(θ)+k cos(θ))来求s和k 因此旋转矩阵(完整)将为(我省略了钻孔部分)
而比例和剪切矩阵(同样,忽略钻孔部分)
现在应用第一个旋转(R),然后缩放和剪切(S)将只乘以矩阵,从而得到结果矩阵
S times R
a=s cos(θ) - k sin(θ) b=s sin(θ)+k cos(θ)
c=-sin(theta) d=cos(theta)
如果你想从中得到θ,s和k,你可以确定θ=arcin(-c)。你知道sin(θ)和cos(θ),所以你可以用两个未知数解两个线性方程(a=s cos(θ)-k sin(θ)b=s sin(θ)+k cos(θ))来求s和k 家庭作业?如果是,请贴上这样的标签。不是作业。只是好奇。查看我的个人资料,寻找我完成学业的证据=]我看不到任何证据,但没关系。我相信你的话。我21岁,是一名软件开发人员。“在互联网上,没人能看出你是一只狗。”-21岁是大学的黄金年龄,很多学生都有兼职工作。家庭作业?如果是,请贴上这样的标签。不是作业。只是好奇。查看我的个人资料,寻找我完成学业的证据=]我看不到任何证据,但没关系。我相信你的话。我21岁,是一名软件开发人员。“在互联网上,没人能看出你是一只狗。”-21岁是大学的黄金年龄,很多学生都有兼职工作。联立方程!精巧的联立方程组!精巧的
S times R
a=s cos(θ) - k sin(θ) b=s sin(θ)+k cos(θ)
c=-sin(theta) d=cos(theta)