剪切矩阵作为基本转换的组合?

Kun*_*wah 6 graphics transformation matrix linear-algebra rotational-matrices

我知道旋转,缩放,平移等的变换矩阵.我也知道剪切变换的矩阵.现在,我需要有剪切矩阵 -

[1 Sx 0]
[0 1  0]
[0 0  1]
Run Code Online (Sandbox Code Playgroud)

以其他上述变换的组合形式.尝试搜索,尝试头脑风暴,但无法罢工!谢谢!

Kun*_*wah 8

剪切角的x剪切操作theta减少到旋转和缩放,如下所示:

(a)逆时针theta/2旋转.

(b)用x-scaling factor = sin(theta/2)和表示y-scaling factor = cos(theta/2).

(c)45 degree顺时针旋转.

(d)用x-scaling factor = sqrt(2)/sin(theta),和y-scaling factor= sqrt(2).


Utk*_*waj 5

是的,它可以完成,旋转后跟非均匀缩放和反向旋转.您可以在第三个问题http://www.cs.cmu.edu/~djames/15-462/Fall03/assts/15-462-Fall03-wrAssign1-answer.pdf中找到详细信息.您也可以尝试以下openGL代码.它将矩形旋转45度,然后在x轴上缩放.然后在-26度旋转,即atan(0.5).0.5来自于在x方向上缩放后找到x轴和一侧之间的角度.

glRotatef(-26.0,0.0,0.0,1.0);

glScalef(2,1,1);

glRotatef(45.0,0.0,0.0,1.0);

glRectf(0,0,25.0,25.0);