Update
This commit is contained in:
@@ -476,7 +476,7 @@ public class MatrixSetPolyToPolyTest extends View {
|
||||
|
||||
我们知道`pointCount`支持点的个数为0到4个,四个一般指图形的四个角,属于最常用的一种情形,但前面几种是什么情况呢?
|
||||
|
||||
> 发布此文的时候之所以没有讲解0到3的情况,是因为前面的几种情况在实际开发中基本不会出现,除非是极其特殊的情况,~~才不是因为偷懒呢,哼。~~
|
||||
> 发布此文的时候之所以没有讲解0到3的情况,是因为前面的几种情况在实际开发中很少会出现, ~~才不是因为偷懒呢,哼。~~
|
||||
|
||||
|
||||
|
||||
@@ -494,6 +494,42 @@ public class MatrixSetPolyToPolyTest extends View {
|
||||
|
||||
|
||||
|
||||
**为什么说前面几种情况在实际开发中很少出现?**
|
||||
|
||||
作为开发人员,写出来的代码出了要让机器"看懂",没有歧义之外,最重要的还是让人看懂,以方便后期的维护修改,从上边的表格中可以看出,前面的几种种情况都可以有更直观的替代方法,只有四个参数的情况下的特殊形变是没有替代方法的。
|
||||
|
||||
|
||||
|
||||
**pointCount为0**
|
||||
|
||||
pointCount为0和`reset`是等价的,而不是保持matrix不变,在最底层的实现中可以看到这样的代码:
|
||||
|
||||
```c++
|
||||
if (0 == count) {
|
||||
this->reset();
|
||||
return true;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
**pointCount为1**
|
||||
|
||||
pointCount为0和`translate`是等价的,在最底层的实现中可以看到这样的代码:
|
||||
|
||||
```c++
|
||||
if (1 == count) {
|
||||
this->setTranslate(dst[0].fX - src[0].fX, dst[0].fY - src[0].fY);
|
||||
return true;
|
||||
}
|
||||
```
|
||||
|
||||
> 平移的距离是dst - src.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
魔力不足,正在蓄力中...
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user