canvas按任意点旋转

canvas旋转图形,默认是以原点为中心进行旋转的。那如果按任意点如何旋转呢?看下图所示:


1.png

我们想按图中的黑色点进行旋转,我们可以将这个动作进行拆解:
1)将图形拉回到原点;
假设图形平移了c,那么拉回原点的操作就是平移-c,我们假设这个动作是T(-c)
2)沿原点进行旋转α角度;
我们假设这个动作为R(α)
3)将图形返回原来的位置;
前面我们将图形平移了-c,这时再平移c返回到原来的位置,我们假设这个动作为T(c)
这样,我们就可以将任意点旋转的复合矩阵,分解为三步操作:


6.png

从而可以得出如下性质:
3.png

矩阵分解是很好用的技巧。





    
    
    Document



    
    
    




你可能感兴趣的:(canvas按任意点旋转)