12
12
13
13
它看起来大概是下面这样:
14
14
15
- ![ ] ( https ://ww1.sinaimg.cn/large/006tKfTcly1fdz72rjfnjj30ak01yglo.jpg)
15
+ ![ ] ( http ://ww1.sinaimg.cn/large/006tKfTcly1fdz72rjfnjj30ak01yglo.jpg)
16
16
17
17
** Matrix作用就是坐标映射,那么为什么需要Matrix呢? 举一个简单的例子:**
18
18
@@ -65,11 +65,11 @@ Matrix 是一个矩阵,最根本的作用就是坐标转换,下面我们就
65
65
66
66
### 1.缩放(Scale)
67
67
68
- ![ ] ( https ://ww2.sinaimg.cn/large/006tKfTcly1fdz7baj17gj302h01rdfr.jpg)
68
+ ![ ] ( http ://ww2.sinaimg.cn/large/006tKfTcly1fdz7baj17gj302h01rdfr.jpg)
69
69
70
70
用矩阵表示:
71
71
72
- ![ ] ( https ://ww3.sinaimg.cn/large/006tKfTcly1fdz7busaiej3062020mx4.jpg)
72
+ ![ ] ( http ://ww3.sinaimg.cn/large/006tKfTcly1fdz7busaiej3062020mx4.jpg)
73
73
74
74
> 你可能注意到了,我们坐标多了一个1,这是使用了齐次坐标系的缘故,在数学中我们的点和向量都是这样表示的(x, y),两者看起来一样,计算机无法区分,为此让计算机也可以区分它们,增加了一个标志位,增加之后看起来是这样: <br />
75
75
>
@@ -88,23 +88,23 @@ Matrix 是一个矩阵,最根本的作用就是坐标转换,下面我们就
88
88
89
89
#### 水平错切
90
90
91
- ![ ] ( https ://ww3.sinaimg.cn/large/006tKfTcly1fdz7d0niaqj303601mglj.jpg)
91
+ ![ ] ( http ://ww3.sinaimg.cn/large/006tKfTcly1fdz7d0niaqj303601mglj.jpg)
92
92
93
93
用矩阵表示:
94
94
95
- ![ ] ( https ://ww4.sinaimg.cn/large/006tKfTcly1fdz7dryrfcj305m020glk.jpg)
95
+ ![ ] ( http ://ww4.sinaimg.cn/large/006tKfTcly1fdz7dryrfcj305m020glk.jpg)
96
96
97
97
图例:
98
98
99
99
![ ] ( http://ww2.sinaimg.cn/large/005Xtdi2jw1f6cniifb0sj308c0dw3yz.jpg )
100
100
101
101
#### 垂直错切
102
102
103
- ![ ] ( https ://ww3.sinaimg.cn/large/006tKfTcly1fdz7esq5j4j303701pdfr.jpg)
103
+ ![ ] ( http ://ww3.sinaimg.cn/large/006tKfTcly1fdz7esq5j4j303701pdfr.jpg)
104
104
105
105
用矩阵表示:
106
106
107
- ![ ] ( https ://ww4.sinaimg.cn/large/006tKfTcly1fdz7ffdxauj305n024glk.jpg)
107
+ ![ ] ( http ://ww4.sinaimg.cn/large/006tKfTcly1fdz7ffdxauj305n024glk.jpg)
108
108
109
109
图例:
110
110
@@ -114,11 +114,11 @@ Matrix 是一个矩阵,最根本的作用就是坐标转换,下面我们就
114
114
115
115
> 水平错切和垂直错切的复合。
116
116
117
- ![ ] ( https ://ww4.sinaimg.cn/large/006tKfTcly1fdz7g0lmcaj303801mq2v.jpg)
117
+ ![ ] ( http ://ww4.sinaimg.cn/large/006tKfTcly1fdz7g0lmcaj303801mq2v.jpg)
118
118
119
119
用矩阵表示:
120
120
121
- ![ ] ( https ://ww2.sinaimg.cn/large/006tKfTcly1fdz7gkg5dej3062021mx4.jpg)
121
+ ![ ] ( http ://ww2.sinaimg.cn/large/006tKfTcly1fdz7gkg5dej3062021mx4.jpg)
122
122
123
123
图例:
124
124
@@ -128,11 +128,11 @@ Matrix 是一个矩阵,最根本的作用就是坐标转换,下面我们就
128
128
129
129
假定一个点 A(x<sub >0</sub >, y<sub >0</sub >) ,距离原点距离为 r, 与水平轴夹角为 α 度, 绕原点旋转 θ 度, 旋转后为点 B(x, y) 如下:
130
130
131
- ![ ] ( https ://ww3.sinaimg.cn/large/006tKfTcly1fdz7h61ddsj30gm03twel.jpg)
131
+ ![ ] ( http ://ww3.sinaimg.cn/large/006tKfTcly1fdz7h61ddsj30gm03twel.jpg)
132
132
133
133
用矩阵表示:
134
134
135
- ![ ] ( https ://ww2.sinaimg.cn/large/006tKfTcly1fdz7hn7pbdj308i0240sq.jpg)
135
+ ![ ] ( http ://ww2.sinaimg.cn/large/006tKfTcly1fdz7hn7pbdj308i0240sq.jpg)
136
136
137
137
图例:
138
138
@@ -142,11 +142,11 @@ Matrix 是一个矩阵,最根本的作用就是坐标转换,下面我们就
142
142
143
143
> 此处也是使用齐次坐标的优点体现之一,实际上前面的三个操作使用 2x2 的矩阵也能满足需求,但是使用 2x2 的矩阵,无法将平移操作加入其中,而将坐标扩展为齐次坐标后,将矩阵扩展为 3x3 就可以将算法统一,四种算法均可以使用矩阵乘法完成。
144
144
145
- ![ ] ( https ://ww4.sinaimg.cn/large/006tKfTcly1fdz7igi28cj302w01kdfr.jpg)
145
+ ![ ] ( http ://ww4.sinaimg.cn/large/006tKfTcly1fdz7igi28cj302w01kdfr.jpg)
146
146
147
147
用矩阵表示:
148
148
149
- ![ ] ( https ://ww2.sinaimg.cn/large/006tKfTcly1fdz7izsq8hj306b022mx4.jpg)
149
+ ![ ] ( http ://ww2.sinaimg.cn/large/006tKfTcly1fdz7izsq8hj306b022mx4.jpg)
150
150
151
151
图例:
152
152
@@ -299,11 +299,11 @@ Log.e(TAG, "MatrixTest" + matrix.toShortString());
299
299
300
300
之所以平移距离是 MTRANS\_ X = 500,MTRANS\_ Y = 800,那是因为执行 Translate 之前 Matrix 已经具有了一个缩放比例。在右乘的时候影响到了具体的数值计算,可以用矩阵乘法计算一下。
301
301
302
- ![ ] ( https ://ww3.sinaimg.cn/large/006tKfTcly1fdz7lhb20fj30lz01zgm8.jpg)
302
+ ![ ] ( http ://ww3.sinaimg.cn/large/006tKfTcly1fdz7lhb20fj30lz01zgm8.jpg)
303
303
304
304
最终结果为:
305
305
306
- ![ ] ( https ://ww2.sinaimg.cn/large/006tKfTcly1fdz7m2pgyuj303o022wef.jpg)
306
+ ![ ] ( http ://ww2.sinaimg.cn/large/006tKfTcly1fdz7m2pgyuj303o022wef.jpg)
307
307
308
308
当 T* S 的时候,缩放比例则不会影响到 MTRANS\\ _ X 和 MTRANS\\ _ Y ,具体可以使用矩阵乘法自己计算一遍。
309
309
@@ -415,7 +415,7 @@ m.preScale(sx, sy);
415
415
```
416
416
417
417
用矩阵表示:
418
- ![ ] ( https ://ww4.sinaimg.cn/large/006tKfTcly1fdz7mv29jhj30gg02374b.jpg)
418
+ ![ ] ( http ://ww4.sinaimg.cn/large/006tKfTcly1fdz7mv29jhj30gg02374b.jpg)
419
419
420
420
#### 2.仅用post:
421
421
@@ -429,7 +429,7 @@ m.postTranslate(tx, ty);
429
429
430
430
用矩阵表示:
431
431
432
- ![ ] ( https ://ww1.sinaimg.cn/large/006tKfTcly1fdz7nde6gcj30gh020dfv.jpg)
432
+ ![ ] ( http ://ww1.sinaimg.cn/large/006tKfTcly1fdz7nde6gcj30gh020dfv.jpg)
433
433
434
434
#### 3.混合:
435
435
0 commit comments